#+TITLE: Tmux config #+setupfile: headers #+OPTIONS: auto-id:t #+HTML_HEAD_EXTRA: #+HTML_HEAD_EXTRA: #+HTML_HEAD_EXTRA: #+PROPERTY: header-args :mkdirp yes :tangle ~/.tmux.conf.local * Presentation :PROPERTIES: :CUSTOM_ID: Presentation-0b37c6c0 :END: 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 [[https://github.com/gpakosz/.tmux][here]]. * Windows and pane creation :PROPERTIES: :CUSTOM_ID: Windows_and_pane_creation-66275518 :END: Whether if a new *window* will retain the current path. Possible values are: - ~true~ - ~false~ (default) #+BEGIN_SRC conf-unix tmux_conf_new_window_retain_current_path=true #+END_SRC Whether if a new *pane* should retain the current path. Possible values are: - ~true~ (default) - ~false~ #+BEGIN_SRC conf-unix tmux_conf_new_window_retain_current_path=true #+END_SRC Whether or not tmux should attempt to reconnect to the current ssh session. This is still experimental. Possible values are: - ~true~ - ~false~ (default) #+BEGIN_SRC conf-unix tmux_conf_new_pane_reconnect_ssh=true #+END_SRC Whether tmux should prompt for new session name when creating a new one. Possible values are: - ~true~ - ~false~ (default) #+BEGIN_SRC conf-unix tmux_conf_new_session_prompt=false #+END_SRC * Display :PROPERTIES: :CUSTOM_ID: Display-d5ae1908 :END: Whether to activate RGB 24-bit color support (only available in tmux >= 2.2). Possible values are: - ~true~ - ~false~ (default) #+BEGIN_SRC conf-unix tmux_conf_theme_24b_colour=false #+END_SRC These variables are for chosing the window style. I use the default one. #+BEGIN_SRC conf-unix tmux_conf_theme_window_fg='default' tmux_conf_theme_window_bg='default' #+END_SRC Whether the focused pane should be highlighted (only available in tmux >= 2.1). Possible values are: - ~true~ - ~false~ (default) #+BEGIN_SRC conf-unix tmux_conf_theme_highlight_focused_pane=false #+END_SRC Set the terminal title. Built-in variables are: - =#{circled_window_index}= - =#{circled_session_name}= - =#{hostname}= - =#{hostname_ssh}= - =#{username}= - =#{username_ssh}= #+BEGIN_SRC conf-unix tmux_conf_theme_terminal_title='#h ❐ #S ● #I #W' #+END_SRC 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. #+BEGIN_SRC conf-unix 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' #+END_SRC ** Colors and style :PROPERTIES: :CUSTOM_ID: Display-Colors_and_style-0994a014 :END: 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~ #+BEGIN_SRC conf-unix tmux_conf_theme_pane_border_style=thin #+END_SRC Declare what the colors of the focused pane should be. The first variable specifies the foreground color, the other the background color. #+BEGIN_SRC conf-unix tmux_conf_theme_focused_pane_fg='default' tmux_conf_theme_focused_pane_bg='#0087d7' #+END_SRC Here you can set the colors of the pane borders. #+BEGIN_SRC conf-unix tmux_conf_theme_pane_border='#444444' tmux_conf_theme_pane_active_border='#00afff' #+END_SRC With these variables, you can set the colors for the pane indicators. #+BEGIN_SRC conf-unix tmux_conf_theme_pane_indicator='#00afff' tmux_conf_theme_pane_active_indicator='#00afff' #+END_SRC These variables set the colors and the style of the status line. #+BEGIN_SRC conf-unix tmux_conf_theme_message_fg='#000000' tmux_conf_theme_message_bg='#ffff00' tmux_conf_theme_message_attr='bold' #+END_SRC Same as above for the status line command style. #+BEGIN_SRC conf-unix tmux_conf_theme_message_command_fg='#ffff00' tmux_conf_theme_message_command_bg='#000000' tmux_conf_theme_message_command_attr='bold' #+END_SRC These variables set the style of the window modes. #+BEGIN_SRC conf-unix tmux_conf_theme_mode_fg='#000000' tmux_conf_theme_mode_bg='#ffff00' tmux_conf_theme_mode_attr='bold' #+END_SRC Set the style of the status line. #+BEGIN_SRC conf-unix tmux_conf_theme_status_fg='#8a8a8a' tmux_conf_theme_status_bg='#080808' tmux_conf_theme_status_attr='none' #+END_SRC ** Window status bar :PROPERTIES: :CUSTOM_ID: Display-Window_status_bar-dff37ae7 :END: The following variables are to set the window’s status style and format. Sets the colors and style of the window status. #+BEGIN_SRC conf-unix tmux_conf_theme_window_status_fg='#8a8a8a' tmux_conf_theme_window_status_bg='#080808' tmux_conf_theme_window_status_attr='none' #+END_SRC Sets the format of the window status. Built-in variables are: - =#{circled_window_index}= - =#{circled_session_name}= - =#{hostname}= - =#{hostname_ssh}= - =#{username}= - =#{username_ssh}= #+BEGIN_SRC conf-unix tmux_conf_theme_window_status_format='#I #W' #+END_SRC Sets the colors and style of the current window status. #+BEGIN_SRC conf-unix tmux_conf_theme_window_status_current_fg='#000000' tmux_conf_theme_window_status_current_bg='#00afff' tmux_conf_theme_window_status_current_attr='bold' #+END_SRC Sets the format of the currentwindow status. Built-in variables are: - =#{circled_window_index}= - =#{circled_session_name}= - =#{hostname}= - =#{hostname_ssh}= - =#{username}= - =#{username_ssh}= #+BEGIN_SRC conf-unix tmux_conf_theme_window_status_current_format='#I #W' #+END_SRC Sets the window activity status style. #+BEGIN_SRC conf-unix tmux_conf_theme_window_status_activity_fg='default' tmux_conf_theme_window_status_activity_bg='default' tmux_conf_theme_window_status_activity_attr='underscore' #+END_SRC Sets the window bell status style. #+BEGIN_SRC conf-unix 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' #+END_SRC Sets the window last status style. #+BEGIN_SRC conf-unix tmux_conf_theme_window_status_last_fg='#00afff' tmux_conf_theme_window_status_last_bg='default' tmux_conf_theme_window_status_last_attr='none' #+END_SRC 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}= #+BEGIN_SRC conf-unix 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} ' #+END_SRC Sets the left status style and colors. #+BEGIN_SRC conf-unix 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' #+END_SRC Sets the right status style and colors. #+BEGIN_SRC conf-unix 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' #+END_SRC Set the pairing indicator, its style and its attribute. #+BEGIN_SRC conf-unix tmux_conf_theme_pairing='👓 ' # U+1F453 tmux_conf_theme_pairing_fg='none' tmux_conf_theme_pairing_bg='none' tmux_conf_theme_pairing_attr='none' #+END_SRC Set the pairing indicator, its style and its attribute. #+BEGIN_SRC conf-unix tmux_conf_theme_prefix='⌨ ' # U+2328 tmux_conf_theme_prefix_fg='none' tmux_conf_theme_prefix_bg='none' tmux_conf_theme_prefix_attr='none' #+END_SRC Set the root indicator, its style and its attribute. #+BEGIN_SRC conf-unix tmux_conf_theme_root='!' tmux_conf_theme_root_fg='none' tmux_conf_theme_root_bg='none' tmux_conf_theme_root_attr='bold,blink' #+END_SRC Set the synchronized indicator, its style and its attribute. #+BEGIN_SRC conf-unix tmux_conf_theme_synchronized='🔒' # U+1F512 tmux_conf_theme_synchronized_fg='none' tmux_conf_theme_synchronized_bg='none' tmux_conf_theme_synchronized_attr='none' #+END_SRC Set the battery bar symbols. #+BEGIN_SRC conf-unix tmux_conf_battery_bar_symbol_full='◼' tmux_conf_battery_bar_symbol_empty='◻' #+END_SRC Set the battery bar length in terms of amount of symbols. Possible values are: - =auto= - an integer number, e.g. 5 #+BEGIN_SRC conf-unix tmux_conf_battery_bar_length='auto' #+END_SRC 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 =#=. #+BEGIN_SRC conf-unix tmux_conf_battery_bar_palette='gradient' #tmux_conf_battery_bar_palette='#d70000,#e4e4e4,#000000' #+END_SRC 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 =#=. #+BEGIN_SRC conf-unix tmux_conf_battery_hbar_palette='gradient' #+END_SRC 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 =#=. #+BEGIN_SRC conf-unix tmux_conf_battery_vbar_palette='gradient' #+END_SRC Set symbols used to indicate whether the battery is charging or discharging. #+BEGIN_SRC conf-unix 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 #+END_SRC 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=. #+BEGIN_SRC conf-unix tmux_conf_theme_clock_colour='#00afff' tmux_conf_theme_clock_style='24' #+END_SRC * Clipboard :PROPERTIES: :CUSTOM_ID: Clipboard-66d0d03a :END: Whether if in copy mode, copying the selection also copies to the OS clipboard. Possible values are: - ~true~ - ~false~ (default) #+BEGIN_SRC conf-unix tmux_conf_copy_to_os_clipboard=false #+END_SRC * User customizations :PROPERTIES: :CUSTOM_ID: User_customizations-c913b5d7 :END: Here we can override or undo some setting from settings from tmux. First, we can increase the history size. #+BEGIN_SRC conf-unix set -g history-limit 10000 #+END_SRC We can also start with mouse mode enabled. But I don’t. #+BEGIN_SRC conf-unix #set -g mouse on #+END_SRC 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. #+BEGIN_SRC conf-unix #set -g status-keys vi #set -g mode-keys vi #+END_SRC 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. #+BEGIN_SRC conf-unix # set -gu prefix2 # unbind C-a # unbind C-b # set -g prefix C-a # bind C-a send-prefix #+END_SRC Move the status line to the top. #+BEGIN_SRC conf-unix #set -g status-position top #+END_SRC