421 lines
14 KiB
Org Mode
421 lines
14 KiB
Org Mode
#+TITLE: Phundrak’s tmux config
|
||
#+INCLUDE: ~/org/config-website/headers.org
|
||
#+OPTIONS: auto-id:t
|
||
#+HTML_HEAD_EXTRA: <meta name="description" content="Phundrak's tmux config" />
|
||
#+HTML_HEAD_EXTRA: <meta property="og:title" content="Phundrak's tmux config" />
|
||
#+HTML_HEAD_EXTRA: <meta property="og:description" content="Description of the tmux config file of Phundrak" />
|
||
|
||
* Table of Contents :TOC_4_gh:noexport:
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: h-400070eb-725f-4416-a4c6-da3053df750b
|
||
:END:
|
||
|
||
- [[#presentation][Presentation]]
|
||
- [[#windows-and-pane-creation][Windows and pane creation]]
|
||
- [[#display][Display]]
|
||
- [[#colors-and-style][Colors and style]]
|
||
- [[#window-status-bar][Window status bar]]
|
||
- [[#clipboard][Clipboard]]
|
||
- [[#user-customizations][User customizations]]
|
||
|
||
* Presentation
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: h-d6e5eaf3-150c-4f3e-bc8e-fbbbb604640e
|
||
:HEADER-ARGS: :tangle ~/.tmux.conf.local
|
||
: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: h-b7e4f3a6-ab16-47e8-aa72-b74b3a66893d
|
||
: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: h-a1b48bb1-40d8-4ffb-9ec0-b77e63f7ef84
|
||
: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: h-3142ab15-458c-434b-99d6-1f89462a6f26
|
||
: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: h-f6a802f9-3b1e-4c83-8ffc-a72a35a691e9
|
||
: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
|
||
# 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'
|
||
#+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: h-47a20d72-6406-4467-b833-a4bd33731487
|
||
: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: h-68bc0e1c-48d9-4b14-953d-875601d0edb7
|
||
: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
|