504 lines
17 KiB
Plaintext
504 lines
17 KiB
Plaintext
# : << EOF
|
|
# -- 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=true
|
|
|
|
# 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
|
|
|
|
# color_yellow="#FCDE70"
|
|
color_yellow="yellow"
|
|
# color_red="#D91656"
|
|
color_reg="red"
|
|
# color_green="#85A947"
|
|
color_green="green"
|
|
# color_teal="#219B9D"
|
|
color_teal="teal"
|
|
# color_white="#fff"
|
|
color_white="white"
|
|
# color_pink="#f5c2e7"
|
|
color_pink="pink"
|
|
color_black="#000000"
|
|
# color_black="black"
|
|
# color_blue='#3D3BF3'
|
|
color_blue="blue"
|
|
color_mauve="#FFE3E3"
|
|
color_offwhite="#F9F9F2"
|
|
color_grey="#2a2a2a"
|
|
# color_grey="grey"
|
|
|
|
# accent="#015551"
|
|
# accent="#143D60"
|
|
# accent="#22177A"
|
|
# accent="#3D8D7A"
|
|
|
|
accent="green"
|
|
|
|
color_accent="$accent"
|
|
color_primary="default"
|
|
color_secondary="$color_grey"
|
|
color_fg_primary="default"
|
|
color_fg_secondary="$color_offwhite"
|
|
|
|
window_status_current_bg="default"
|
|
window_status_current_fg="$color_accent"
|
|
|
|
theme_mode_bg="$color_accent"
|
|
theme_mode_fg="$color_fg_primary"
|
|
|
|
tmux_conf_theme_window_fg="$color_fg_primary"
|
|
# window style
|
|
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="default"
|
|
|
|
# pane border style, possible values are:
|
|
# - thin (default)
|
|
# - fat
|
|
tmux_conf_theme_pane_border_style=thin
|
|
|
|
# pane borders colours:
|
|
tmux_conf_theme_pane_border="grey"
|
|
tmux_conf_theme_pane_active_border="$color_accent"
|
|
%if #{>=:#{version},3.2}
|
|
tmux_conf_theme_pane_active_border="#{?pane_in_mode,$color_accent,#{?synchronize-panes,$color_accent,$color_accent}}"
|
|
%endif
|
|
|
|
# pane indicator colours (when you hit <prefix> + q)
|
|
tmux_conf_theme_pane_indicator="$color_accent"
|
|
tmux_conf_theme_pane_active_indicator="$color_accent"
|
|
|
|
# status line style
|
|
tmux_conf_theme_message_fg="$color_fg_primary"
|
|
tmux_conf_theme_message_bg="$color_accent"
|
|
tmux_conf_theme_message_attr="none"
|
|
|
|
# status line command style (<prefix> : Escape)
|
|
tmux_conf_theme_message_command_fg="$color_fg_primary"
|
|
tmux_conf_theme_message_command_bg="$color_primary"
|
|
tmux_conf_theme_message_command_attr="bold"
|
|
|
|
# window modes style
|
|
tmux_conf_theme_mode_fg="$theme_mode_fg"
|
|
tmux_conf_theme_mode_bg="$theme_mode_bg"
|
|
tmux_conf_theme_mode_attr="bold"
|
|
|
|
# status line style
|
|
tmux_conf_theme_status_fg="$color_white"
|
|
tmux_conf_theme_status_bg="default"
|
|
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="#h ❐ #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="default"
|
|
tmux_conf_theme_window_status_bg="default"
|
|
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: #(despell -e #W) #W #{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}"
|
|
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_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: #(despell -e #W) #[fg=$tmux_conf_theme_window_status_current_fg]#W*#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}"
|
|
tmux_conf_theme_window_status_current_format="#I:#[fg=$tmux_conf_theme_window_status_current_fg]#W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}"
|
|
|
|
tmux_conf_theme_window_status_current_fg="$window_status_current_fg"
|
|
tmux_conf_theme_window_status_current_bg="$window_status_current_bg"
|
|
tmux_conf_theme_window_status_current_attr="bold"
|
|
|
|
# window activity status style
|
|
tmux_conf_theme_window_status_activity_fg="$color_fg_primary"
|
|
tmux_conf_theme_window_status_activity_bg="$color_primary"
|
|
tmux_conf_theme_window_status_activity_attr="underscore"
|
|
|
|
# window bell status style
|
|
tmux_conf_theme_window_status_bell_fg="$color_fg_primary"
|
|
tmux_conf_theme_window_status_bell_bg="$color_primary"
|
|
tmux_conf_theme_window_status_bell_attr="blink,bold"
|
|
|
|
# window last status style
|
|
tmux_conf_theme_window_status_last_fg="$color_fg_primary"
|
|
tmux_conf_theme_window_status_last_bg="$color_primary"
|
|
tmux_conf_theme_window_status_last_attr="bold"
|
|
|
|
# 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="\u2022"
|
|
# tmux_conf_theme_left_separator_main='\uE0B0' # /!\ you don't need to install Powerline
|
|
# tmux_conf_theme_left_separator_sub='\uE0B1' # yku 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_right=" #{prefix}#{mouse}#{pairing}#{synchronized} |\u2022 #{username}#{root} |\u2022 #{hostname} |\u2022 ↑ #{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} "
|
|
|
|
# status left style
|
|
tmux_conf_theme_status_left_fg="$color_black,$color_fg_primary,$color_fg_primary"
|
|
tmux_conf_theme_status_left_bg="$color_primary,$color_primary,$color_primary"
|
|
tmux_conf_theme_status_left_attr="bold,none,none"
|
|
|
|
# status right style
|
|
tmux_conf_theme_status_right_fg="$color_fg_primary,$color_fg_primary,$color_fg_primary,$color_fg_primary"
|
|
tmux_conf_theme_status_right_bg="$color_primary,$color_primary,$color_primary,$color_primary"
|
|
tmux_conf_theme_status_right_attr="bold,none,bold,none"
|
|
|
|
# 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"
|
|
tmux_conf_battery_bar_palette="gradient"
|
|
#tmux_conf_battery_bar_palette="#d70000,#e4e4e4,#000000" # red, white, black
|
|
|
|
# battery hbar palette, possible values are:
|
|
# - gradient (default)
|
|
# - heat
|
|
# - "colour_low,colour_half,colour_full"
|
|
tmux_conf_battery_hbar_palette="gradient"
|
|
#tmux_conf_battery_hbar_palette="#d70000,#ff5f00,#5fff00" # red, orange, $color_accent
|
|
|
|
# battery vbar palette, possible values are:
|
|
# - gradient (default)
|
|
# - heat
|
|
# - "colour_low,colour_half,colour_full"
|
|
tmux_conf_battery_vbar_palette="gradient"
|
|
#tmux_conf_battery_vbar_palette="#d70000,#ff5f00,#5fff00" # red, orange, $color_accent
|
|
|
|
# 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="$color_accent"
|
|
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=true
|
|
|
|
|
|
# -- 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 99999999
|
|
set status-bg default
|
|
|
|
# start with mouse mode enabled
|
|
set -g mouse on
|
|
|
|
# Allow tmux to understand and pass through color queries
|
|
set -as terminal-overrides ",xterm*:Tc"
|
|
set -as terminal-overrides ",xterm*:RGB"
|
|
|
|
# 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
|
|
|
|
unbind -T copy-mode-vi MouseDragEnd1Pane
|
|
# if you don't want Oh my tmux! to alter a binding, use #!important
|
|
# bind c new-window -c '#{pane_current_path}' #!important
|
|
|
|
# move status line to top
|
|
set -g status-position bottom
|
|
|
|
# -- 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'
|
|
|
|
# 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'
|
|
set -g @plugin 'tmux-plugins/tmux-logging'
|
|
|
|
# switch windows alt+number
|
|
bind-key -n M-1 select-window -t 1
|
|
bind-key -n M-2 select-window -t 2
|
|
bind-key -n M-3 select-window -t 3
|
|
bind-key -n M-4 select-window -t 4
|
|
bind-key -n M-5 select-window -t 5
|
|
bind-key -n M-6 select-window -t 6
|
|
bind-key -n M-7 select-window -t 7
|
|
bind-key -n M-8 select-window -t 8
|
|
bind-key -n M-9 select-window -t 9
|
|
# Toggle popup window with Ctrl+
|
|
bind-key -n -N 'Toggle popup window' M-p if-shell -F '#{==:#{session_name},popup}' {
|
|
detach-client
|
|
} {
|
|
display-popup -d "#{pane_current_path}" -xC -yC -w 70% -h 65% -E 'tmux attach-session -t popup || tmux new-session -s popup'
|
|
}
|
|
bind-key -n M-f "tmux-sessionizer\n"
|
|
|
|
# Set alignment
|
|
set -g status-justify left
|
|
# set -g status-style fg=default,bg=default
|
|
# set mode-style "fg=black,bg=default"
|
|
# -- 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
|
|
#
|
|
# 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
|
|
# }
|
|
#
|
|
# online() {
|
|
# ping -c 1 1.1.1.1 >/dev/null 2>&1 && printf '✔' || printf '✘'
|
|
# }
|
|
#
|
|
# 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
|
|
# }
|
|
#
|
|
# 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
|
|
# }
|
|
#
|
|
# "$@"
|
|
# # /!\ do not remove the previous line
|
|
# # do not write below this line
|