|
# : << EOF |
|
# https://github.com/gpakosz/.tmux |
|
# (‑●‑●)> dual licensed under the WTFPL v2 license and the MIT license, |
|
# without any warranty. |
|
# Copyright 2012— Gregory Pakosz (@gpakosz). |
|
|
|
# Allow colors to show nicely |
|
set -g default-terminal "screen-256color" |
|
|
|
# -- navigation ---------------------------------------------------------------- |
|
|
|
# if you're running tmux within iTerm2 |
|
# - and tmux is 1.9 or 1.9a |
|
# - and iTerm2 is configured to let option key act as +Esc |
|
# - and iTerm2 is configured to send [1;9A -> [1;9D for option + arrow keys |
|
# then uncomment the following line to make Meta + arrow keys mapping work |
|
#set -ga terminal-overrides "*:kUP3=\e[1;9A,*:kDN3=\e[1;9B,*:kRIT3=\e[1;9C,*:kLFT3=\e[1;9D" |
|
|
|
|
|
# -- windows & pane creation --------------------------------------------------- |
|
|
|
# new window retains current path, possible values are: |
|
# - true |
|
# - false (default) |
|
tmux_conf_new_window_retain_current_path=true |
|
|
|
# new pane retains current path, possible values are: |
|
# - true (default) |
|
# - false |
|
tmux_conf_new_pane_retain_current_path=true |
|
|
|
# new pane tries to reconnect ssh sessions (experimental), possible values are: |
|
# - true |
|
# - false (default) |
|
tmux_conf_new_pane_reconnect_ssh=false |
|
|
|
# prompt for session name when creating a new session, possible values are: |
|
# - true |
|
# - false (default) |
|
tmux_conf_new_session_prompt=false |
|
|
|
|
|
# -- display ------------------------------------------------------------------- |
|
|
|
# RGB 24-bit colour support (tmux >= 2.2), possible values are: |
|
# - true |
|
# - false (default) |
|
tmux_conf_24b_colour=true |
|
|
|
# default theme |
|
tmux_conf_theme_colour_1="#080808" # dark gray |
|
tmux_conf_theme_colour_2="#303030" # gray |
|
tmux_conf_theme_colour_3="#8a8a8a" # light gray |
|
tmux_conf_theme_colour_4="#00afff" # light blue |
|
tmux_conf_theme_colour_5="#ffff00" # yellow |
|
tmux_conf_theme_colour_6="#080808" # dark gray |
|
tmux_conf_theme_colour_7="#e4e4e4" # white |
|
tmux_conf_theme_colour_8="#080808" # dark gray |
|
tmux_conf_theme_colour_9="#ffff00" # yellow |
|
tmux_conf_theme_colour_10="#ff00af" # pink |
|
tmux_conf_theme_colour_11="#5fff00" # green |
|
tmux_conf_theme_colour_12="#8a8a8a" # light gray |
|
tmux_conf_theme_colour_13="#e4e4e4" # white |
|
tmux_conf_theme_colour_14="#080808" # dark gray |
|
tmux_conf_theme_colour_15="#080808" # dark gray |
|
tmux_conf_theme_colour_16="#d70000" # red |
|
tmux_conf_theme_colour_17="#e4e4e4" # white |
|
|
|
# default theme (ansi) |
|
#tmux_conf_theme_colour_1="colour0" |
|
#tmux_conf_theme_colour_2="colour8" |
|
#tmux_conf_theme_colour_3="colour8" |
|
#tmux_conf_theme_colour_4="colour14" |
|
#tmux_conf_theme_colour_5="colour11" |
|
#tmux_conf_theme_colour_6="colour0" |
|
#tmux_conf_theme_colour_7="colour15" |
|
#tmux_conf_theme_colour_8="colour0" |
|
#tmux_conf_theme_colour_9="colour11" |
|
#tmux_conf_theme_colour_10="colour13" |
|
#tmux_conf_theme_colour_11="colour10" |
|
#tmux_conf_theme_colour_12="colour8" |
|
#tmux_conf_theme_colour_13="colour15" |
|
#tmux_conf_theme_colour_14="colour0" |
|
#tmux_conf_theme_colour_15="colour0" |
|
#tmux_conf_theme_colour_16="colour1" |
|
#tmux_conf_theme_colour_17="colour15" |
|
|
|
# window style |
|
tmux_conf_theme_window_fg="default" |
|
tmux_conf_theme_window_bg="default" |
|
|
|
# highlight focused pane (tmux >= 2.1), possible values are: |
|
# - true |
|
# - false (default) |
|
tmux_conf_theme_highlight_focused_pane=true |
|
|
|
# focused pane colours: |
|
tmux_conf_theme_focused_pane_bg="#1c1c1c" |
|
|
|
# pane border style, possible values are: |
|
# - thin (default) |
|
# - fat |
|
tmux_conf_theme_pane_border_style=thin |
|
|
|
# pane borders colours: |
|
tmux_conf_theme_pane_border="$tmux_conf_theme_colour_2" |
|
tmux_conf_theme_pane_active_border="$tmux_conf_theme_colour_4" |
|
|
|
# pane indicator colours (when you hit <prefix> + q) |
|
tmux_conf_theme_pane_indicator="$tmux_conf_theme_colour_4" |
|
tmux_conf_theme_pane_active_indicator="$tmux_conf_theme_colour_4" |
|
|
|
# status line style |
|
tmux_conf_theme_message_fg="$tmux_conf_theme_colour_1" |
|
tmux_conf_theme_message_bg="$tmux_conf_theme_colour_5" |
|
tmux_conf_theme_message_attr="bold" |
|
|
|
# status line command style (<prefix> : Escape) |
|
tmux_conf_theme_message_command_fg="$tmux_conf_theme_colour_5" |
|
tmux_conf_theme_message_command_bg="$tmux_conf_theme_colour_1" |
|
tmux_conf_theme_message_command_attr="bold" |
|
|
|
# window modes style |
|
tmux_conf_theme_mode_fg="$tmux_conf_theme_colour_1" |
|
tmux_conf_theme_mode_bg="$tmux_conf_theme_colour_5" |
|
tmux_conf_theme_mode_attr="bold" |
|
|
|
# status line style |
|
tmux_conf_theme_status_fg="$tmux_conf_theme_colour_3" |
|
tmux_conf_theme_status_bg="$tmux_conf_theme_colour_1" |
|
tmux_conf_theme_status_attr="none" |
|
|
|
# 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" |
|
|
|
# window status style |
|
# - built-in variables are: |
|
# - #{circled_window_index} |
|
# - #{circled_session_name} |
|
# - #{hostname} |
|
# - #{hostname_ssh} |
|
# - #{username} |
|
# - #{username_ssh} |
|
tmux_conf_theme_window_status_fg="$tmux_conf_theme_colour_3" |
|
tmux_conf_theme_window_status_bg="$tmux_conf_theme_colour_1" |
|
tmux_conf_theme_window_status_attr="none" |
|
tmux_conf_theme_window_status_format="#I #W" |
|
tmux_conf_theme_window_status_format="#{circled_window_index} #W" |
|
tmux_conf_theme_window_status_format="#I #W#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}" |
|
|
|
# window current status style |
|
# - built-in variables are: |
|
# - #{circled_window_index} |
|
# - #{circled_session_name} |
|
# - #{hostname} |
|
# - #{hostname_ssh} |
|
# - #{username} |
|
# - #{username_ssh} |
|
tmux_conf_theme_window_status_current_fg="$tmux_conf_theme_colour_1" |
|
tmux_conf_theme_window_status_current_bg="$tmux_conf_theme_colour_4" |
|
tmux_conf_theme_window_status_current_attr="bold" |
|
#tmux_conf_theme_window_status_current_format="#I #W" |
|
#tmux_conf_theme_window_status_current_format="#{circled_window_index} #W" |
|
tmux_conf_theme_window_status_current_format="#I #W#{?window_zoomed_flag,🔍,}" |
|
|
|
# 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" |
|
|
|
# window bell status style |
|
tmux_conf_theme_window_status_bell_fg="$tmux_conf_theme_colour_5" |
|
tmux_conf_theme_window_status_bell_bg="default" |
|
tmux_conf_theme_window_status_bell_attr="blink,bold" |
|
|
|
# window last status style |
|
tmux_conf_theme_window_status_last_fg="$tmux_conf_theme_colour_4" |
|
tmux_conf_theme_window_status_last_bg="$tmux_conf_theme_colour_2" |
|
tmux_conf_theme_window_status_last_attr="none" |
|
|
|
# status left/right sections separators |
|
#tmux_conf_theme_left_separator_main="" |
|
#tmux_conf_theme_left_separator_sub="|" |
|
#tmux_conf_theme_right_separator_main="" |
|
#tmux_conf_theme_right_separator_sub="|" |
|
tmux_conf_theme_left_separator_main="\uE0B0" # /!\ you don't need to install Powerline |
|
tmux_conf_theme_left_separator_sub="\uE0B1" # you only need fonts patched with |
|
tmux_conf_theme_right_separator_main="\uE0B2" # Powerline symbols or the standalone |
|
tmux_conf_theme_right_separator_sub="\uE0B3" # PowerlineSymbols.otf font, see README.md |
|
|
|
# status left/right content: |
|
# - separate main sections with "|" |
|
# - separate subsections with "," |
|
# - built-in variables 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_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_ssh}#{root} | #{hostname_ssh} " |
|
tmux_conf_theme_status_right=" #{prefix}#{pairing}#{synchronized} #(curl -m 1 wttr.in?format=3 2>/dev/null; sleep 900) , %R , %d %b | #{username}#{root} | #{hostname} " |
|
|
|
# status left style |
|
tmux_conf_theme_status_left_fg="$tmux_conf_theme_colour_6,$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_8" |
|
tmux_conf_theme_status_left_bg="$tmux_conf_theme_colour_9,$tmux_conf_theme_colour_10,$tmux_conf_theme_colour_11" |
|
tmux_conf_theme_status_left_attr="bold,none,none" |
|
|
|
# status right style |
|
tmux_conf_theme_status_right_fg="$tmux_conf_theme_colour_12,$tmux_conf_theme_colour_13,$tmux_conf_theme_colour_14" |
|
tmux_conf_theme_status_right_bg="$tmux_conf_theme_colour_15,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_17" |
|
tmux_conf_theme_status_right_attr="none,none,bold" |
|
|
|
# pairing indicator |
|
tmux_conf_theme_pairing="⚇" # U+2687 |
|
tmux_conf_theme_pairing_fg="none" |
|
tmux_conf_theme_pairing_bg="none" |
|
tmux_conf_theme_pairing_attr="none" |
|
|
|
# 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" |
|
|
|
# root indicator |
|
tmux_conf_theme_root="!" |
|
tmux_conf_theme_root_fg="none" |
|
tmux_conf_theme_root_bg="none" |
|
tmux_conf_theme_root_attr="bold,blink" |
|
|
|
# synchronized indicator |
|
tmux_conf_theme_synchronized="⚏" # U+268F |
|
tmux_conf_theme_synchronized_fg="none" |
|
tmux_conf_theme_synchronized_bg="none" |
|
tmux_conf_theme_synchronized_attr="none" |
|
|
|
# battery bar symbols |
|
#tmux_conf_battery_bar_symbol_full="◼" |
|
#tmux_conf_battery_bar_symbol_empty="◻" |
|
tmux_conf_battery_bar_symbol_full="♥" |
|
tmux_conf_battery_bar_symbol_empty="·" |
|
|
|
# battery bar length (in number of symbols), possible values are: |
|
# - auto |
|
# - a number, e.g. 5 |
|
tmux_conf_battery_bar_length="auto" |
|
|
|
# battery bar palette, possible values are: |
|
# - gradient (default) |
|
# - heat |
|
# - "colour_full_fg,colour_empty_fg,colour_bg" |
|
tmux_conf_battery_bar_palette="gradient" |
|
#tmux_conf_battery_bar_palette="#d70000,#e4e4e4,#000000" # red, white, black |
|
|
|
# battery hbar palette, possible values are: |
|
# - gradient (default) |
|
# - heat |
|
# - "colour_low,colour_half,colour_full" |
|
tmux_conf_battery_hbar_palette="gradient" |
|
#tmux_conf_battery_hbar_palette="#d70000,#ff5f00,#5fff00" # red, orange, green |
|
|
|
# battery vbar palette, possible values are: |
|
# - gradient (default) |
|
# - heat |
|
# - "colour_low,colour_half,colour_full" |
|
tmux_conf_battery_vbar_palette="gradient" |
|
#tmux_conf_battery_vbar_palette="#d70000,#ff5f00,#5fff00" # red, orange, green |
|
|
|
# symbols used to indicate whether battery is charging or discharging |
|
tmux_conf_battery_status_charging="↑" # U+2191 |
|
tmux_conf_battery_status_discharging="↓" # U+2193 |
|
#tmux_conf_battery_status_charging="🔌" # U+1F50C |
|
#tmux_conf_battery_status_discharging="🔋" # U+1F50B |
|
|
|
# clock style (when you hit <prefix> + t) |
|
# you may want to use %I:%M %p in place of %R in tmux_conf_theme_status_right |
|
tmux_conf_theme_clock_colour="$tmux_conf_theme_colour_4" |
|
tmux_conf_theme_clock_style="24" |
|
|
|
|
|
# -- clipboard ----------------------------------------------------------------- |
|
|
|
# in copy mode, copying selection also copies to the OS clipboard |
|
# - true |
|
# - false (default) |
|
# on macOS, this requires installing reattach-to-user-namespace, see README.md |
|
# on Linux, this requires xsel or xclip |
|
tmux_conf_copy_to_os_clipboard=false |
|
|
|
|
|
# -- user customizations ------------------------------------------------------- |
|
# this is the place to override or undo settings |
|
|
|
# increase history size |
|
set -g history-limit 50000 |
|
|
|
# start with mouse mode enabled |
|
set -g mouse on |
|
|
|
# force Vi mode |
|
# really you should export VISUAL or EDITOR environment variable, see manual |
|
#set -g status-keys vi |
|
#set -g mode-keys vi |
|
|
|
# Unbind C-a |
|
set -gu prefix2 |
|
unbind C-a |
|
|
|
# replace C-b by C-a instead of using both prefixe |
|
#set -gu prefix2 |
|
#unbind C-a |
|
# unbind C-b |
|
#set -g prefix C-b |
|
#bind C-b send-prefix |
|
|
|
# move status line to top |
|
#set -g status-position top |
|
|
|
# quick view of processes |
|
bind-key "²" new-window -n "htop" "exec htop" |
|
bind-key H new-window -n "su htop" "exec sudo htop" |
|
bind-key D new-window -n "docker stats" "exec docker stats" |
|
|
|
# control automatic window renaming |
|
#setw -g automatic-rename off |
|
|
|
# Split windows1 |
|
# alternatively, use better mnemonics for horizontal/vertical splits |
|
bind-key - split-window -v |
|
bind-key _ split-window -v |
|
bind-key | split-window -h |
|
unbind % |
|
unbind '"' |
|
|
|
# keep history when pressing CTRL+L |
|
unbind -n C-l |
|
|
|
# Notifying if other windows has activities |
|
setw -g monitor-activity on |
|
set -g visual-activity on |
|
|
|
# Plugins |
|
# List of plugins |
|
set -g @tpm_plugins ' \ |
|
tmux-plugins/tpm \ |
|
tmux-plugins/tmux-sensible \ |
|
tmux-plugins/tmux-resurrect \ |
|
tmux-plugins/tmux-continuum \ |
|
' |
|
|
|
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) |
|
run '~/.tmux/plugins/tpm/tpm' |
|
|
|
# -- custom variables ---------------------------------------------------------- |
|
# to define a custom #{foo} variable, define a POSIX shell function between the |
|
# '# EOF' and the '# "$@"' lines. Please note that the opening brace { character |
|
# must be on the same line as the function name otherwise the parse won't detect |
|
# it. |
|
# |
|
# then, use #{foo} in e.g. the 'tmux_conf_theme_status_left' or the |
|
# 'tmux_conf_theme_status_right' variables. |
|
|
|
# # /!\ do not remove the following line |
|
# EOF |
|
# |
|
# weather() { |
|
# curl -m 1 wttr.in?format=3 2>/dev/null |
|
# sleep 900 # sleep for 15 minutes, throttle network requests whatever the value of status-interval |
|
# } |
|
# |
|
# online() { |
|
# ping -t 1 -c 1 1.1.1.1 >/dev/null 2>&1 && printf '✔' || printf '✘' |
|
# } |
|
# |
|
# "$@" |
|
# # /!\ do not remove the previous line |