Files
dotfiles/dot_tmux.conf.local
T
2026-05-13 18:55:54 +03:00

666 lines
28 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# : << 'EOF'
# Oh my tmux!
# 💛🩷💙🖤❤️🤍
# https://github.com/gpakosz/.tmux
# (‑●‑●)> dual licensed under the WTFPL v2 license and the MIT license,
# without any warranty.
# Copyright 2012— Gregory Pakosz (@gpakosz).
# -- bindings ------------------------------------------------------------------
# preserve tmux stock bindings,
# while adding bindings that don't conflict with these stock bindings
# /!\ this disables some of Oh my tmux! bindings described in README.md
# - true
# - false (default)
tmux_conf_preserve_stock_bindings=false
# -- session creation ----------------------------------------------------------
# prompt for session name when creating a new session, possible values are:
# - true
# - false (default)
# - disabled (do not modify new-session bindings)
tmux_conf_new_session_prompt=false
# new session retains current path, possible values are:
# - true
# - false (default)
# - disabled (do not modify new-session bindings)
tmux_conf_new_session_retain_current_path=false
# -- windows & pane creation ---------------------------------------------------
# new window retains current path, possible values are:
# - true
# - false (default)
# - disabled (do not modify new-window bindings)
tmux_conf_new_window_retain_current_path=false
# new window tries to reconnect ssh sessions, possible values are:
# - true
# - false (default)
# - disabled (do not modify new-window bindings)
tmux_conf_new_window_reconnect_ssh=false
# new pane retains current path, possible values are:
# - true (default)
# - false
# - disabled (do not modify split-window bindings)
tmux_conf_new_pane_retain_current_path=true
# new pane tries to reconnect ssh sessions, possible values are:
# - true
# - false (default)
# - disabled (do not modify split-window bindings)
tmux_conf_new_pane_reconnect_ssh=false
# -- display -------------------------------------------------------------------
# RGB 24-bit colour support, possible values are:
# - true
# - false
# - auto (default)
#
# automatic detection relies on the COLORTERM environment variable being defined
# to 'truecolor' or '24bit' or '$ tput colors' answering '16777216'
# see https://github.com/termstandard/colors
tmux_conf_24b_colour=auto
# -- theming -------------------------------------------------------------------
# enable or disable theming:
# - enabled (default)
# - disabled
# when disabled, all tmux_conf_theme_xxx variables are ignored except:
# - tmux_conf_theme_pairing
# - tmux_conf_theme_prefix
# - tmux_conf_theme_mouse
# - tmux_conf_theme_root
# - tmux_conf_theme_synchronized
tmux_conf_theme=enabled
# KDE Breeze Dark theme colors - neutral graphite with Plasma blue accents
tmux_conf_theme_colour_1="#232629" # panel background
tmux_conf_theme_colour_2="#3b4045" # brighter active surface
tmux_conf_theme_colour_3="#7f8c8d" # lighter inactive text
tmux_conf_theme_colour_4="#3daee9" # Plasma focus blue
tmux_conf_theme_colour_5="#6ccfff" # brighter highlight blue
tmux_conf_theme_colour_6="#1b1e20" # shadow background
tmux_conf_theme_colour_7="#eff0f1" # primary text
tmux_conf_theme_colour_8="#232629" # panel background
tmux_conf_theme_colour_9="#2980b9" # deeper accent blue
tmux_conf_theme_colour_10="#3daee9" # accent blue
tmux_conf_theme_colour_11="#27ae60" # positive state
tmux_conf_theme_colour_12="#f9d06b" # brighter warm highlight
tmux_conf_theme_colour_13="#eff0f1" # primary text
tmux_conf_theme_colour_14="#232629" # panel background
tmux_conf_theme_colour_15="#444a50" # lifted secondary surface
tmux_conf_theme_colour_16="#da4453" # negative state
tmux_conf_theme_colour_17="#eff0f1" # primary text
# window style
tmux_conf_theme_window_fg="default"
tmux_conf_theme_window_bg="default"
# highlight focused pane, possible values are:
# - true
# - false (default)
tmux_conf_theme_highlight_focused_pane=false
# focused pane colours:
tmux_conf_theme_focused_pane_bg="$tmux_conf_theme_colour_2"
# pane border style, possible values are:
# - thin (default)
# - fat
tmux_conf_theme_pane_border_style=thin
# pane borders colours:
tmux_conf_theme_pane_border="$tmux_conf_theme_colour_2"
tmux_conf_theme_pane_active_border="$tmux_conf_theme_colour_4"
%if #{>=:#{version},3.2}
tmux_conf_theme_pane_active_border="#{?pane_in_mode,$tmux_conf_theme_colour_9,#{?synchronize-panes,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_4}}"
%endif
# pane indicator colours (when you hit <prefix> + q)
tmux_conf_theme_pane_indicator="$tmux_conf_theme_colour_4"
tmux_conf_theme_pane_active_indicator="$tmux_conf_theme_colour_4"
# status line style
tmux_conf_theme_message_fg="$tmux_conf_theme_colour_7"
tmux_conf_theme_message_bg="$tmux_conf_theme_colour_4"
tmux_conf_theme_message_attr="bold"
# status line command style (<prefix> : Escape)
tmux_conf_theme_message_command_fg="$tmux_conf_theme_colour_1"
tmux_conf_theme_message_command_bg="$tmux_conf_theme_colour_5"
tmux_conf_theme_message_command_attr="bold"
# window modes style
tmux_conf_theme_mode_fg="$tmux_conf_theme_colour_1"
tmux_conf_theme_mode_bg="$tmux_conf_theme_colour_12"
tmux_conf_theme_mode_attr="bold"
# status line style
tmux_conf_theme_status_fg="$tmux_conf_theme_colour_3"
tmux_conf_theme_status_bg="$tmux_conf_theme_colour_1"
tmux_conf_theme_status_attr="none"
# terminal title
# - built-in variables are:
# - #{circled_window_index}
# - #{circled_session_name}
# - #{hostname}
# - #{hostname_ssh}
# - #{hostname_full}
# - #{hostname_full_ssh}
# - #{username}
# - #{username_ssh}
tmux_conf_theme_terminal_title="❐ #S ● #I #W"
# window status style
# - built-in variables are:
# - #{circled_window_index}
# - #{circled_session_name}
# - #{hostname}
# - #{hostname_ssh}
# - #{hostname_full}
# - #{hostname_full_ssh}
# - #{username}
# - #{username_ssh}
tmux_conf_theme_window_status_fg="$tmux_conf_theme_colour_3"
tmux_conf_theme_window_status_bg="$tmux_conf_theme_colour_1"
tmux_conf_theme_window_status_attr="none"
tmux_conf_theme_window_status_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
#tmux_conf_theme_window_status_format="#{circled_window_index} #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
#tmux_conf_theme_window_status_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}"
# window current status style
# - built-in variables are:
# - #{circled_window_index}
# - #{circled_session_name}
# - #{hostname}
# - #{hostname_ssh}
# - #{hostname_full}
# - #{hostname_full_ssh}
# - #{username}
# - #{username_ssh}
tmux_conf_theme_window_status_current_fg="$tmux_conf_theme_colour_4"
tmux_conf_theme_window_status_current_bg="$tmux_conf_theme_colour_2"
tmux_conf_theme_window_status_current_attr="bold"
tmux_conf_theme_window_status_current_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
#tmux_conf_theme_window_status_current_format="#{circled_window_index} #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
#tmux_conf_theme_window_status_current_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}"
# window activity status style
tmux_conf_theme_window_status_activity_fg="$tmux_conf_theme_colour_7"
tmux_conf_theme_window_status_activity_bg="$tmux_conf_theme_colour_15"
tmux_conf_theme_window_status_activity_attr="none"
# window bell status style
tmux_conf_theme_window_status_bell_fg="$tmux_conf_theme_colour_7"
tmux_conf_theme_window_status_bell_bg="$tmux_conf_theme_colour_16"
tmux_conf_theme_window_status_bell_attr="bold"
# window last status style
tmux_conf_theme_window_status_last_fg="$tmux_conf_theme_colour_5"
tmux_conf_theme_window_status_last_bg="$tmux_conf_theme_colour_15"
tmux_conf_theme_window_status_last_attr="none"
# status left/right sections separators
tmux_conf_theme_left_separator_main=""
tmux_conf_theme_left_separator_sub="|"
tmux_conf_theme_right_separator_main=""
tmux_conf_theme_right_separator_sub="|"
#tmux_conf_theme_left_separator_main='\uE0B0' # /!\ you don't need to install Powerline
#tmux_conf_theme_left_separator_sub='\uE0B1' # you only need fonts patched with
#tmux_conf_theme_right_separator_main='\uE0B2' # Powerline symbols or the standalone
#tmux_conf_theme_right_separator_sub='\uE0B3' # PowerlineSymbols.otf font, see README.md
# status left/right content:
# - separate main sections with "|"
# - separate subsections with ","
# - built-in variables are:
# - #{battery_bar}
# - #{battery_hbar}
# - #{battery_percentage}
# - #{battery_status}
# - #{battery_vbar}
# - #{circled_session_name}
# - #{hostname_ssh}
# - #{hostname}
# - #{hostname_full}
# - #{hostname_full_ssh}
# - #{loadavg}
# - #{mouse}
# - #{pairing}
# - #{prefix}
# - #{root}
# - #{synchronized}
# - #{uptime_y}
# - #{uptime_d} (modulo 365 when #{uptime_y} is used)
# - #{uptime_h}
# - #{uptime_m}
# - #{uptime_s}
# - #{username}
# - #{username_ssh}
tmux_conf_theme_status_left=" ❐ #S "
#tmux_conf_theme_status_left=" ❐ #S | ↑#{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} | #{pretty_pane_current_path} "
tmux_conf_theme_status_right=" #{prefix}#{mouse}#{pairing}#{synchronized}#{?battery_status,#{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} | %R | %d %b #{root}"
# status left style
tmux_conf_theme_status_left_fg="$tmux_conf_theme_colour_1,$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_7"
tmux_conf_theme_status_left_bg="$tmux_conf_theme_colour_10,$tmux_conf_theme_colour_2,$tmux_conf_theme_colour_15"
tmux_conf_theme_status_left_attr="bold,none,none"
# status right style
tmux_conf_theme_status_right_fg="$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_1"
tmux_conf_theme_status_right_bg="$tmux_conf_theme_colour_15,$tmux_conf_theme_colour_2,$tmux_conf_theme_colour_10"
tmux_conf_theme_status_right_attr="none,none,bold"
# pairing indicator
tmux_conf_theme_pairing="⚇" # U+2687
tmux_conf_theme_pairing_fg="none"
tmux_conf_theme_pairing_bg="none"
tmux_conf_theme_pairing_attr="none"
# prefix indicator
tmux_conf_theme_prefix="⌨" # U+2328
tmux_conf_theme_prefix_fg="none"
tmux_conf_theme_prefix_bg="none"
tmux_conf_theme_prefix_attr="none"
# mouse indicator
tmux_conf_theme_mouse="↗" # U+2197
tmux_conf_theme_mouse_fg="none"
tmux_conf_theme_mouse_bg="none"
tmux_conf_theme_mouse_attr="none"
# root indicator
tmux_conf_theme_root="!"
tmux_conf_theme_root_fg="none"
tmux_conf_theme_root_bg="none"
tmux_conf_theme_root_attr="bold,blink"
# synchronized indicator
tmux_conf_theme_synchronized="⚏" # U+268F
tmux_conf_theme_synchronized_fg="none"
tmux_conf_theme_synchronized_bg="none"
tmux_conf_theme_synchronized_attr="none"
# battery bar symbols
tmux_conf_battery_bar_symbol_full="◼"
tmux_conf_battery_bar_symbol_empty="◻"
#tmux_conf_battery_bar_symbol_full="♥"
#tmux_conf_battery_bar_symbol_empty="·"
# battery bar length (in number of symbols), possible values are:
# - auto
# - a number, e.g. 5
tmux_conf_battery_bar_length="auto"
# battery bar palette, possible values are:
# - gradient (default)
# - heat
# - "colour_full_fg,colour_empty_fg,colour_bg"
# - gradient(colour_fg_1,colour_fg_2,...,colour_fg_n)
tmux_conf_battery_bar_palette="gradient"
#tmux_conf_battery_bar_palette="#d70000,#e4e4e4,#000000" # red, white, black
#tmux_conf_battery_bar_palette="gradient(#00afff,#47a2ff,#7c91ff,#ac7afb,#d65be2,#e163df,#eb6cdd,#f475db,#ec9ff1,#eac3fe,#efe2ff,#ffffff)"
# battery hbar palette, possible values are:
# - gradient (default)
# - heat
# - "colour_low,colour_half,colour_full"
# - gradient(colour_fg_1,colour_fg_2,...,colour_fg_n)
tmux_conf_battery_hbar_palette="gradient"
#tmux_conf_battery_hbar_palette="#d70000,#ff5f00,#5fff00" # red, orange, green
#tmux_conf_battery_hbar_palette="gradient(#00afff,#47a2ff,#7c91ff,#ac7afb,#d65be2,#e163df,#eb6cdd,#f475db,#ec9ff1,#eac3fe,#efe2ff,#ffffff)"
# battery vbar palette, possible values are:
# - gradient (default)
# - heat
# - "colour_low,colour_half,colour_full"
# - gradient(colour_fg_1,colour_fg_2,...,colour_fg_n)
tmux_conf_battery_vbar_palette="gradient"
#tmux_conf_battery_vbar_palette="#d70000,#ff5f00,#5fff00" # red, orange, green
#tmux_conf_battery_vbar_palette="gradient(#00afff,#47a2ff,#7c91ff,#ac7afb,#d65be2,#e163df,#eb6cdd,#f475db,#ec9ff1,#eac3fe,#efe2ff,#ffffff)"
# symbols used to indicate whether battery is charging or discharging
tmux_conf_battery_status_charging="↑" # U+2191
tmux_conf_battery_status_discharging="↓" # U+2193
#tmux_conf_battery_status_charging="🔌" # U+1F50C
#tmux_conf_battery_status_discharging="🔋" # U+1F50B
# clock style (when you hit <prefix> + t)
# you may want to use %I:%M %p in place of %R in tmux_conf_theme_status_right
tmux_conf_theme_clock_colour="$tmux_conf_theme_colour_10"
tmux_conf_theme_clock_style="24"
# -- clipboard -----------------------------------------------------------------
# in copy mode, copying selection also copies to the OS clipboard
# - true
# - false (default)
# - disabled
# on Linux, this requires xsel, xclip or wl-copy
tmux_conf_copy_to_os_clipboard=false
# -- urlscan -------------------------------------------------------------------
# options passed to urlscan
tmux_conf_urlscan_options="--compact --dedupe"
# -- user customizations -------------------------------------------------------
# this is the place to override or undo settings
# increase history size
set -g history-limit 50000
# start with mouse mode enabled (для прокрутки тачпадом)
set -g mouse on
# force Vi mode
# really you should export VISUAL or EDITOR environment variable, see manual
#set -g status-keys vi
#set -g mode-keys vi
# replace C-b by C-a instead of using both prefixes
# set -gu prefix2
# unbind C-a
# unbind C-b
# set -g prefix C-a
# bind C-a send-prefix
# if you don't want Oh my tmux! to alter a binding or a setting, use #!important
# bind c new-window -c '#{pane_current_path}' #!important
# display a message after toggling mouse support
bind m run "cut -c3- '#{TMUX_CONF}' | sh -s _toggle_mouse" \; display 'mouse #{?#{mouse},on,off}'
# move status line to top
set -g status-position top
# -- custom key bindings -------------------------------------------------------
# Alt+стрелки для переключения между окнами (вкладками)
bind -n M-Left previous-window
bind -n M-Right next-window
bind -n M-Up switch-client -p
bind -n M-Down switch-client -n
# Навигация между панелями - поддержка русской раскладки (р/о/л/д = h/j/k/l)
bind -r р select-pane -L # h -> р (влево)
bind -r о select-pane -D # j -> о (вниз)
bind -r л select-pane -U # k -> л (вверх)
bind -r д select-pane -R # l -> д (вправо)
# Изменение размера панелей - поддержка русской раскладки
bind -r Р resize-pane -L 2 # H -> Р
bind -r О resize-pane -D 2 # J -> О
bind -r Л resize-pane -U 2 # K -> Л
bind -r Д resize-pane -R 2 # L -> Д
# Навигация между окнами - русская раскладка
bind -r C-р previous-window # C-h -> C-р
bind -r C-д next-window # C-l -> C-д
# Создание нового окна - русская раскладка
bind с new-window # c -> с
# Поиск сессии - русская раскладка
bind C-а command-prompt -p find-session 'switch-client -t %%' # C-f -> C-а
# Ctrl+Alt+h или Ctrl+Alt+р для показа гайда по горячим клавишам (в новом окне с прокруткой)
bind -n C-M-h new-window -n "TMUX Шпаргалка" "cat << 'EOF' | less -R
╔═══════════════════════════════════════════════════════════════════════════╗
║ TMUX ГОРЯЧИЕ КЛАВИШИ (prefix = Ctrl+b или Ctrl+a) ║
╚═══════════════════════════════════════════════════════════════════════════╝
📋 ОСНОВНЫЕ КОМАНДЫ:
prefix + ? - Показать все горячие клавиши
prefix + : - Командная строка tmux
prefix + r (к) - Перезагрузить конфигурацию
prefix + e (у) - Редактировать ~/.tmux.conf.local
Ctrl+l - Очистить экран и историю
🪟 УПРАВЛЕНИЕ ОКНАМИ (вкладками):
prefix + c (с) - Создать новое окно
prefix + , - Переименовать текущее окно
prefix + & - Закрыть текущее окно
prefix + n (т) - Следующее окно
prefix + p (з) - Предыдущее окно
prefix + Ctrl+h (р) - Предыдущее окно
prefix + Ctrl+l (д) - Следующее окно
prefix + Tab - Последнее активное окно
prefix + 0-9 - Переключиться на окно по номеру
Alt + ←/→ - Переключение между окнами
Alt + ↑/↓ - Переключение между сессиями
🔲 УПРАВЛЕНИЕ ПАНЕЛЯМИ:
prefix + - - Разделить по горизонтали
prefix + _ - Разделить по вертикали
prefix + h/j/k/l (р/о/л/д) - Навигация между панелями (vim-style)
prefix + H/J/K/L (Р/О/Л/Д) - Изменить размер панели
prefix + < - Поменять панели местами (влево)
prefix + > - Поменять панели местами (вправо)
prefix + + - Развернуть панель на весь экран
prefix + x (ч) - Закрыть текущую панель
prefix + ! - Превратить панель в окно
prefix + z (я) - Zoom панели (toggle)
prefix + q (й) - Показать номера панелей
📋 КОПИРОВАНИЕ И ВСТАВКА:
prefix + Enter - Режим копирования
prefix + b (и) - Список буферов
prefix + p (з) - Вставить из буфера
prefix + P (З) - Выбрать буфер для вставки
В режиме копирования:
v (м) - Начать выделение
y (н) - Скопировать выделенное
Escape - Выйти из режима копирования
🔧 СЕССИИ:
prefix + Ctrl+c (с) - Создать новую сессию
prefix + Ctrl+f (а) - Найти сессию
prefix + d (в) - Отключиться от сессии
prefix + D (В) - Выбрать сессию для отключения
prefix + s (ы) - Список сессий
🖱️ ДРУГОЕ:
prefix + m (ь) - Включить/выключить мышь
prefix + t (е) - Показать часы
prefix + U (Г) - Открыть URL (urlscan/urlview)
prefix + F (А) - Facebook PathPicker (если установлен)
Ctrl+Alt+h (р) - Показать этот гайд
💡 Используйте стрелки ↑/↓ или j/k для прокрутки
💡 Нажмите q для выхода
💡 Русская раскладка поддерживается! (в скобках указаны русские буквы)
EOF
"
# Дубликат для русской раскладки Ctrl+Alt+р
bind -n C-M-р new-window -n "TMUX Шпаргалка" "cat << 'EOF' | less -R
╔═══════════════════════════════════════════════════════════════════════════╗
║ TMUX ГОРЯЧИЕ КЛАВИШИ (prefix = Ctrl+b или Ctrl+a) ║
╚═══════════════════════════════════════════════════════════════════════════╝
📋 ОСНОВНЫЕ КОМАНДЫ:
prefix + ? - Показать все горячие клавиши
prefix + : - Командная строка tmux
prefix + r (к) - Перезагрузить конфигурацию
prefix + e (у) - Редактировать ~/.tmux.conf.local
Ctrl+l - Очистить экран и историю
🪟 УПРАВЛЕНИЕ ОКНАМИ (вкладками):
prefix + c (с) - Создать новое окно
prefix + , - Переименовать текущее окно
prefix + & - Закрыть текущее окно
prefix + n (т) - Следующее окно
prefix + p (з) - Предыдущее окно
prefix + Ctrl+h (р) - Предыдущее окно
prefix + Ctrl+l (д) - Следующее окно
prefix + Tab - Последнее активное окно
prefix + 0-9 - Переключиться на окно по номеру
Alt + ←/→ - Переключение между окнами
Alt + ↑/↓ - Переключение между сессиями
🔲 УПРАВЛЕНИЕ ПАНЕЛЯМИ:
prefix + - - Разделить по горизонтали
prefix + _ - Разделить по вертикали
prefix + h/j/k/l (р/о/л/д) - Навигация между панелями (vim-style)
prefix + H/J/K/L (Р/О/Л/Д) - Изменить размер панели
prefix + < - Поменять панели местами (влево)
prefix + > - Поменять панели местами (вправо)
prefix + + - Развернуть панель на весь экран
prefix + x (ч) - Закрыть текущую панель
prefix + ! - Превратить панель в окно
prefix + z (я) - Zoom панели (toggle)
prefix + q (й) - Показать номера панелей
📋 КОПИРОВАНИЕ И ВСТАВКА:
prefix + Enter - Режим копирования
prefix + b (и) - Список буферов
prefix + p (з) - Вставить из буфера
prefix + P (З) - Выбрать буфер для вставки
В режиме копирования:
v (м) - Начать выделение
y (н) - Скопировать выделенное
Escape - Выйти из режима копирования
🔧 СЕССИИ:
prefix + Ctrl+c (с) - Создать новую сессию
prefix + Ctrl+f (а) - Найти сессию
prefix + d (в) - Отключиться от сессии
prefix + D (В) - Выбрать сессию для отключения
prefix + s (ы) - Список сессий
🖱️ ДРУГОЕ:
prefix + m (ь) - Включить/выключить мышь
prefix + t (е) - Показать часы
prefix + U (Г) - Открыть URL (urlscan/urlview)
prefix + F (А) - Facebook PathPicker (если установлен)
Ctrl+Alt+h (р) - Показать этот гайд
💡 Используйте стрелки ↑/↓ или j/k для прокрутки
💡 Нажмите q для выхода
💡 Русская раскладка поддерживается! (в скобках указаны русские буквы)
EOF
"
# Дополнительно: F1 открывает встроенную шпаргалку всех активных биндов tmux
bind -n F1 new-window -n "TMUX Keys" "tmux list-keys | less"
# -- tpm -----------------------------------------------------------------------
# while I don't use tpm myself, many people requested official support so here
# is a seamless integration that automatically installs plugins in parallel
# whenever a plugin introduces a variable to be used in 'status-left' or
# 'status-right', you can use it in 'tmux_conf_theme_status_left' and
# 'tmux_conf_theme_status_right' variables.
# by default, launching tmux will update tpm and all plugins
# - true (default)
# - false
tmux_conf_update_plugins_on_launch=true
# by default, reloading the configuration will update tpm and all plugins
# - true (default)
# - false
tmux_conf_update_plugins_on_reload=true
# by default, reloading the configuration will uninstall tpm and plugins when no
# plugins are enabled
# - true (default)
# - false
tmux_conf_uninstall_plugins_on_reload=true
# /!\ the tpm bindings differ slightly from upstream:
# - installing plugins: <prefix> + I
# - uninstalling plugins: <prefix> + Alt + u
# - updating plugins: <prefix> + u
# /!\ do not add set -g @plugin 'tmux-plugins/tpm'
# /!\ do not add run '~/.tmux/plugins/tpm/tpm'
# /!\ the 'set -g @tpm_plugins' syntax is not supported
# to enable a plugin, use the 'set -g @plugin' syntax:
# visit https://github.com/tmux-plugins for available plugins
#set -g @plugin 'tmux-plugins/tmux-copycat'
#set -g @plugin 'tmux-plugins/tmux-cpu'
#set -g @plugin 'tmux-plugins/tmux-resurrect'
#set -g @plugin 'tmux-plugins/tmux-continuum'
#set -g @continuum-restore 'on'
# -- custom variables ----------------------------------------------------------
# to define a custom #{foo} variable, define a POSIX shell function between the
# '# EOF' and the '# "$@"' lines. Please note that the opening brace { character
# must be on the same line as the function name otherwise the parse won't detect
# it.
#
# then, use #{foo} in e.g. the 'tmux_conf_theme_status_left' or the
# 'tmux_conf_theme_status_right' variables.
# ------------------------------------------------------------------------------
# # /!\ do not remove the following line
# EOF
#
# # /!\ do not "uncomment" the functions: the leading "# " characters are needed
#
# # usage: #{weather}
# weather() { # see https://github.com/chubin/wttr.in#one-line-output
# curl -f -s -m 2 'wttr.in?format=3' || printf '\n' # /!\ make sure curl is installed
# sleep 900 # sleep for 15 minutes, throttle network requests whatever the value of status-interval
# }
#
# # usage: #{online}
# online() {
# ping -c 1 1.1.1.1 >/dev/null 2>&1 && printf '✔' || printf '✘'
# }
#
# # usage: #{wan_ip_v4}
# wan_ip_v4() {
# curl -f -s -m 2 -4 ifconfig.me
# sleep 300 # sleep for 5 minutes, throttle network requests whatever the value of status-interval
# }
#
# # usage: #{wan_ip_v6}
# wan_ip_v6() {
# curl -f -s -m 2 -6 ifconfig.me
# sleep 300 # sleep for 5 minutes, throttle network requests whatever the value of status-interval
# }
#
# # usage: #{github_stars}, #{github_stars tmux/tmux}, ...
# github_stars() {
# repository=${1##*https://github.com/}
# repository=${repository%% *}
# repository=${repository%%.git}
# url="https://api.github.com/repos/${repository:-gpakosz/.tmux}"
# curl -s "$url" | perl -MJSON::PP=decode_json -CO -0777 -E '$response = decode_json(readline *STDIN); say ($response->{stargazers_count})'
# sleep 300 # sleep for 5 minutes, throttle network requests whatever the value of status-interval
# }
#
# "$@"
# # /!\ do not remove the previous line
# # do not write below this line