# : << 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 + 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 ( : 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 + 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: + I # - uninstalling plugins: + Alt + u # - updating plugins: + 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