config.phundrak.com/org/config/tmux.org

13 KiB
Raw Blame History

Tmux config

Presentation

I dont really use tmux often, but I certainly do like a nice presentation and useful features, hence this configuration. This config file is inspired by gpakoszs 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 dont 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 windows 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 dont.

  #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 dont, 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