12 KiB
Tmux config
Presentation
I don’t really use tmux often, but I certainly do like a nice presentation and useful features, hence this configuration. This config file is inspired by gpakosz’s tmux configuration repo you can find here.
Windows and pane creation
Whether if a new window will retain the current path. Possible values are:
true
false
(default)
tmux_conf_new_window_retain_current_path=true
Whether if a new pane should retain the current path. Possible values are:
true
(default)false
tmux_conf_new_window_retain_current_path=true
Whether or not tmux should attempt to reconnect to the current ssh session. This is still experimental. Possible values are:
true
false
(default)
tmux_conf_new_pane_reconnect_ssh=true
Whether tmux should prompt for new session name when creating a new one. Possible values are:
true
false
(default)
tmux_conf_new_session_prompt=false
Display
Whether to activate RGB 24-bit color support (only available in tmux >= 2.2). Possible values are:
true
false
(default)
tmux_conf_theme_24b_colour=false
These variables are for chosing the window style. I use the default one.
tmux_conf_theme_window_fg='default'
tmux_conf_theme_window_bg='default'
Whether the focused pane should be highlighted (only available in tmux >= 2.1). Possible values are:
true
false
(default)
tmux_conf_theme_highlight_focused_pane=false
Set the terminal title. Built-in variables are:
#{circled_window_index}
#{circled_session_name}
#{hostname}
#{hostname_ssh}
#{username}
#{username_ssh}
tmux_conf_theme_terminal_title='#h ❐ #S ● #I #W'
These variables set the left/right separators between sections. With the current values, you don’t need to install Powerline, but only fonts patched with Powerline symbols or the standalone PowerlineSymbols.otf font.
tmux_conf_theme_left_separator_main='\uE0B0'
tmux_conf_theme_left_separator_sub='\uE0B1'
tmux_conf_theme_right_separator_main='\uE0B2'
tmux_conf_theme_right_separator_sub='\uE0B3'
Colors and style
Colors displayed in tmux can be chosen thanks to the following variables. Any color should be formatted as a hexadecimal RGB value preceded by a pound sign #
(e.g. #00afff
for light blue) or default
to let our terminal set it for us.
Choose the style of the pane borders. Possible values are:
thin
(default)fat
tmux_conf_theme_pane_border_style=thin
Declare what the colors of the focused pane should be. The first variable specifies the foreground color, the other the background color.
tmux_conf_theme_focused_pane_fg='default'
tmux_conf_theme_focused_pane_bg='#0087d7'
Here you can set the colors of the pane borders.
tmux_conf_theme_pane_border='#444444'
tmux_conf_theme_pane_active_border='#00afff'
With these variables, you can set the colors for the pane indicators.
tmux_conf_theme_pane_indicator='#00afff'
tmux_conf_theme_pane_active_indicator='#00afff'
These variables set the colors and the style of the status line.
tmux_conf_theme_message_fg='#000000'
tmux_conf_theme_message_bg='#ffff00'
tmux_conf_theme_message_attr='bold'
Same as above for the status line command style.
tmux_conf_theme_message_command_fg='#ffff00'
tmux_conf_theme_message_command_bg='#000000'
tmux_conf_theme_message_command_attr='bold'
These variables set the style of the window modes.
tmux_conf_theme_mode_fg='#000000'
tmux_conf_theme_mode_bg='#ffff00'
tmux_conf_theme_mode_attr='bold'
Set the style of the status line.
tmux_conf_theme_status_fg='#8a8a8a'
tmux_conf_theme_status_bg='#080808'
tmux_conf_theme_status_attr='none'
Window status bar
The following variables are to set the window’s status style and format.
Sets the colors and style of the window status.
tmux_conf_theme_window_status_fg='#8a8a8a'
tmux_conf_theme_window_status_bg='#080808'
tmux_conf_theme_window_status_attr='none'
Sets the format of the window status. Built-in variables are:
#{circled_window_index}
#{circled_session_name}
#{hostname}
#{hostname_ssh}
#{username}
#{username_ssh}
tmux_conf_theme_window_status_format='#I #W'
Sets the colors and style of the current window status.
tmux_conf_theme_window_status_current_fg='#000000'
tmux_conf_theme_window_status_current_bg='#00afff'
tmux_conf_theme_window_status_current_attr='bold'
Sets the format of the currentwindow status. Built-in variables are:
#{circled_window_index}
#{circled_session_name}
#{hostname}
#{hostname_ssh}
#{username}
#{username_ssh}
tmux_conf_theme_window_status_current_format='#I #W'
Sets the window activity status style.
tmux_conf_theme_window_status_activity_fg='default'
tmux_conf_theme_window_status_activity_bg='default'
tmux_conf_theme_window_status_activity_attr='underscore'
Sets the window bell status style.
tmux_conf_theme_window_status_bell_fg='#ffff00'
tmux_conf_theme_window_status_bell_bg='default'
tmux_conf_theme_window_status_bell_attr='blink,bold'
Sets the window last status style.
tmux_conf_theme_window_status_last_fg='#00afff'
tmux_conf_theme_window_status_last_bg='default'
tmux_conf_theme_window_status_last_attr='none'
Sets the left and right content of the status bar of tmux. Sections should be separated with |
, subsections with ,
. The built-in values are:
#{battery_bar}
#{battery_hbar}
#{battery_percentage}
#{battery_status}
#{battery_vbar}
#{circled_session_name}
#{hostname_ssh}
#{hostname}
#{loadavg}
#{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 | ↑#{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} '
tmux_conf_theme_status_right='#{prefix}#{pairing}#{synchronized} #{?battery_status, #{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} , %R , %d %b | #{username}#{root} | #{hostname} '
Sets the left status style and colors.
tmux_conf_theme_status_left_fg='#000000,#e4e4e4,#e4e4e4'
tmux_conf_theme_status_left_bg='#ffff00,#ff00af,#00afff'
tmux_conf_theme_status_left_attr='bold,none,none'
Sets the right status style and colors.
tmux_conf_theme_status_right_fg='#8a8a8a,#e4e4e4,#000000'
tmux_conf_theme_status_right_bg='#080808,#d70000,#e4e4e4'
tmux_conf_theme_status_right_attr='none,none,bold'
Set the pairing indicator, its style and its attribute.
tmux_conf_theme_pairing='👓 ' # U+1F453
tmux_conf_theme_pairing_fg='none'
tmux_conf_theme_pairing_bg='none'
tmux_conf_theme_pairing_attr='none'
Set the pairing indicator, its style and its attribute.
# 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'
Set the root indicator, its style and its attribute.
tmux_conf_theme_root='!'
tmux_conf_theme_root_fg='none'
tmux_conf_theme_root_bg='none'
tmux_conf_theme_root_attr='bold,blink'
Set the synchronized indicator, its style and its attribute.
tmux_conf_theme_synchronized='🔒' # U+1F512
tmux_conf_theme_synchronized_fg='none'
tmux_conf_theme_synchronized_bg='none'
tmux_conf_theme_synchronized_attr='none'
Set the battery bar symbols.
tmux_conf_battery_bar_symbol_full='◼'
tmux_conf_battery_bar_symbol_empty='◻'
Set the battery bar length in terms of amount of symbols. Possible values are:
auto
- an integer number, e.g. 5
tmux_conf_battery_bar_length='auto'
Set the battery bar palette. Possible values are:
gradient
(default)heat
color_full_fg,color_empty_fg,color_bg
with each being an hexadecimal RGB value preceded by a pound symbol#
.
tmux_conf_battery_bar_palette='gradient'
#tmux_conf_battery_bar_palette='#d70000,#e4e4e4,#000000'
Set the hbar palette. Possible values are:
gradient
(default)heat
color_full_fg,color_empty_fg,color_bg
with each being an hexadecimal RGB value preceded by a pound symbol#
.
tmux_conf_battery_hbar_palette='gradient'
Set the vbar palette. Possible values are:
gradient
(default)heat
color_full_fg,color_empty_fg,color_bg
with each being an hexadecimal RGB value preceded by a pound symbol#
.
tmux_conf_battery_vbar_palette='gradient'
Set symbols used to indicate whether the battery is charging or discharging.
tmux_conf_battery_status_charging='⚡ ' # U+26A1
tmux_conf_battery_status_discharging='🔋 ' # U+1F50B
# tmux_conf_battery_status_charging='↑' # U+2191
# tmux_conf_battery_status_discharging='↓' # U+2193
#tmux_conf_battery_status_charging='🔌 ' # U+1F50C
Set the clock style. If it is displayed on the right side of the status bar, it might be better to use %I:%M %p
rather than %R
in tmux_conf_theme_status_right
.
tmux_conf_theme_clock_colour='#00afff'
tmux_conf_theme_clock_style='24'
Clipboard
Whether if in copy mode, copying the selection also copies to the OS clipboard. Possible values are:
true
false
(default)
tmux_conf_copy_to_os_clipboard=false
User customizations
Here we can override or undo some setting from settings from tmux. First, we can increase the history size.
set -g history-limit 10000
We can also start with mouse mode enabled. But I don’t.
#set -g mouse on
Whether or not Vi mode should be enabled. But really, we should rather export the VISUAL
or EDITOR
environment variables, see the tmux manual. Although I don’t, as said in my dotfish, I prefer to use Emacs.
#set -g status-keys vi
#set -g mode-keys vi
Replace C-b
by C-a
instead of using both prefixes. I personally prefer to just use C-b
, hence why the lines are commented.
# set -gu prefix2
# unbind C-a
# unbind C-b
# set -g prefix C-a
# bind C-a send-prefix
Move the status line to the top.
#set -g status-position top