Phundrak’s tmux config

Table of Contents

1 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.

2 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

3 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'

3.1 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'

3.2 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'

4 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

5 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

Author: Lucien Cartier-Tilet

Email: [email protected]

Created: 2020-02-16 dim. 23:57