368 lines
12 KiB
Org Mode
368 lines
12 KiB
Org Mode
# -*- after-save-hook: (org-babel-tangle t); -*-
|
||
#+TITLE: Tmux config
|
||
#+setupfile: headers
|
||
#+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" />
|
||
#+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
|
||
# 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: 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
|