Last active
May 11, 2020 23:57
-
-
Save cesalazar/ea2332eb4689062feb37e0b7f92b090d to your computer and use it in GitHub Desktop.
.tmux.conf.local
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://github.com/gpakosz/.tmux | |
# (‑●‑●)> released under the WTFPL v2 license, by Gregory Pakosz (@gpakosz) | |
# -- 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=false | |
# 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_theme_24b_colour=false | |
# 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=false | |
# focused pane colours: | |
tmux_conf_theme_focused_pane_fg='default' | |
tmux_conf_theme_focused_pane_bg='#0087d7' # light blue | |
# pane border style, possible values are: | |
# - thin (default) | |
# - fat | |
tmux_conf_theme_pane_border_style=thin | |
# pane borders colours: | |
tmux_conf_theme_pane_border='#444444' # gray | |
tmux_conf_theme_pane_active_border='#00afff' # light blue | |
# pane indicator colours | |
tmux_conf_theme_pane_indicator='#00afff' # light blue | |
tmux_conf_theme_pane_active_indicator='#00afff' # light blue | |
# status line style | |
tmux_conf_theme_message_fg='#000000' # black | |
tmux_conf_theme_message_bg='#ffff00' # yellow | |
tmux_conf_theme_message_attr='bold' | |
# status line command style (<prefix> : Escape) | |
tmux_conf_theme_message_command_fg='#ffff00' # yellow | |
tmux_conf_theme_message_command_bg='#000000' # black | |
tmux_conf_theme_message_command_attr='bold' | |
# window modes style | |
tmux_conf_theme_mode_fg='#000000' # black | |
tmux_conf_theme_mode_bg='#ffff00' # yellow | |
tmux_conf_theme_mode_attr='bold' | |
# status line style | |
tmux_conf_theme_status_fg='#8a8a8a' # light gray | |
tmux_conf_theme_status_bg='#080808' # dark gray | |
tmux_conf_theme_status_attr='none' | |
# window status style | |
# - built-in variables are: | |
# - #{circled_window_index} | |
tmux_conf_theme_window_status_fg='#8a8a8a' # light gray | |
tmux_conf_theme_window_status_bg='#080808' # dark gray | |
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} | |
tmux_conf_theme_window_status_current_fg='#000000' # black | |
tmux_conf_theme_window_status_current_bg='#00afff' # light blue | |
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='#ffff00' # yellow | |
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='#00afff' # light blue | |
tmux_conf_theme_window_status_last_bg='default' | |
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='' # /!\ you don't need to install Powerline | |
tmux_conf_theme_left_separator_sub='' # you only need fonts patched with | |
tmux_conf_theme_right_separator_main='' # Powerline symbols or the standalone | |
tmux_conf_theme_right_separator_sub='' # PowerlineSymbols.otf font | |
# 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} | |
# - #{uptime_d} | |
# - #{uptime_h} | |
# - #{uptime_m} | |
# - #{uptime_s} | |
# - #{username} | |
# - #{username_ssh} | |
tmux_conf_theme_status_left=' ❐ #S | ↑#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} ' | |
tmux_conf_theme_status_right='#{prefix}#{pairing} #{?battery_status, #{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} , %R , %d %b | #{username}#{root} | #{hostname} ' | |
# status left style | |
tmux_conf_theme_status_left_fg='#000000,#e4e4e4,#e4e4e4' # black, white , white | |
tmux_conf_theme_status_left_bg='#ffff00,#ff00af,#00afff' # yellow, pink, white blue | |
tmux_conf_theme_status_left_attr='bold,none,none' | |
# status right style | |
tmux_conf_theme_status_right_fg='#8a8a8a,#e4e4e4,#000000' # light gray, white, black | |
tmux_conf_theme_status_right_bg='#080808,#d70000,#e4e4e4' # dark gray, red, white | |
tmux_conf_theme_status_right_attr='none,none,bold' | |
# pairing indicator | |
tmux_conf_theme_pairing='👓' # U+1F453 | |
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' | |
# 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+26A1 | |
#tmux_conf_battery_status_charging='🔌 ' # U+1F50C | |
#tmux_conf_battery_status_discharging='🔋 ' # U+1F50B | |
# clock style | |
tmux_conf_theme_clock_colour='#00afff' # light blue | |
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=true | |
# -- user customizations ------------------------------------------------------- | |
# this is the place to override or undo settings | |
# increase history size | |
set -g history-limit 20000 | |
# 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 | |
# replace C-b by C-a instead of using both prefixes | |
# set -gu prefix2 | |
# unbind C-a | |
# unbind C-b | |
# set -g prefix C-a | |
# bind C-a send-prefix | |
# move status line to top | |
#set -g status-position top | |
# ---- my customizations ------------------------------------------------------- | |
# unbind prefix2 | |
# set -gu prefix2 | |
# unbind C-a | |
# unbind default window/panel navigation | |
unbind C-h | |
unbind C-l | |
unbind Tab | |
unbind Up | |
unbind Down | |
unbind Left | |
unbind Right | |
# Enable truecolor. Check: tmux info | grep Tc | |
# http://homeonrails.com/2016/05/truecolor-in-gnome-terminal-tmux-and-neovim/ | |
set-option -ga terminal-overrides ",xterm-256color:Tc" | |
# Important: the color codes need to be in lowercase! | |
tmux_conf_new_window_retain_current_path=true | |
tmux_conf_battery_vbar_palette='' # disable the battery indicator | |
tmux_conf_theme_status_bg='#2b2c2b' # manjaro-i3 dark gray | |
tmux_conf_theme_window_status_bg='#2b2c2b' # manjaro-i3 dark gray | |
tmux_conf_theme_status_right_bg='#2b2c2b,#d70000,#e4e4e4' # manjaro-i3 dark gray, red, white | |
tmux_conf_theme_window_status_last_fg='#0a84ff' # arc-dark light blue | |
tmux_conf_theme_window_status_current_fg='#fafafa' # white | |
tmux_conf_theme_window_status_current_bg='#0a84ff' # arc-dark light blue | |
tmux_conf_theme_mode_fg='#ffffff' # white | |
tmux_conf_theme_mode_bg='#5f005f' # purple | |
tmux_conf_theme_status_left=' ❐ #S ' | |
tmux_conf_theme_status_right='#{prefix} #{pairing} %d %b , %R | #{username}#{root} | #{hostname} ' | |
# disable bold fonts | |
tmux_conf_theme_status_attr='none' | |
tmux_conf_theme_window_status_current_attr='none' | |
tmux_conf_theme_status_left_attr='none,none,none' | |
tmux_conf_theme_status_right_attr='none,none,none' | |
tmux_conf_theme_left_separator_main='' # ▙ | |
tmux_conf_theme_right_separator_main='' # ▟ | |
set -g mouse on # enable mouse mode | |
set -g status-keys vi # use vi key bindings | |
set -g mode-keys vi | |
set -sg repeat-time 250 # decrease repeat timeout | |
bind | split-window -h # split current window vertically | |
bind -n M-k next-window # select next window | |
bind -n M-j previous-window # select previous window | |
bind C-b last-window # return to last active window | |
# pane navigation without releasing Ctrl | |
bind -r C-h select-pane -L # focus left | |
bind -r C-j select-pane -D # focus down | |
bind -r C-k select-pane -U # focus up | |
bind -r C-l select-pane -R # focus right | |
bind BSpace send-keys C-q # send C-q to disable Xon | |
bind -n M-Enter resize-pane -Z # zoom pane | |
bind -n M-Escape copy-mode # copy-mode | |
# bind -n M-s copy-mode command-prompt -p "(search up)" "send -X search-backward \"%%%\"" | |
bind < swap-window -d -t -1 # swap left window | |
bind > swap-window -d -t +1 # swap right window | |
bind M choose-window "swap-window -t "%%"" # swap an specific window | |
bind V choose-window "join-pane -h -s "%%"" # attach window in vertical pane | |
bind O choose-window "join-pane -v -s "%%"" # attach window in horizontal pane | |
bind N join-pane -t :! # attach last used pane | |
bind B break-pane # detach panel into its own window | |
bind u set status off # hide the status bar | |
bind U set status on # show the status bar | |
bind-key -T copy-mode-vi u send-keys -X halfpage-up # half-page up with u in vi mode | |
bind-key -T copy-mode-vi d send-keys -X halfpage-down # half-page down with d in vi mode | |
# don't leave copy-mode after copying the selection | |
run -b 'tmux bind -T copy-mode-vi y send -X copy-selection 2> /dev/null || true' | |
run -b 'tmux bind -T copy-mode-vi Enter send -X copy-selection 2> /dev/null || true' | |
# don't leave copy-mode with Escape (use q instead) | |
run -b 'tmux bind -T copy-mode-vi Escape send -X clear-selection 2> /dev/null || true' | |
# 0 moves to the first character, instead of the beginning of the line | |
run -b 'tmux bind -T copy-mode-vi 0 send -X back-to-indentation 2> /dev/null || true' | |
# select window with Alt+Number | |
bind -n M-1 select-window -t 1 | |
bind -n M-2 select-window -t 2 | |
bind -n M-3 select-window -t 3 | |
bind -n M-4 select-window -t 4 | |
bind -n M-5 select-window -t 5 | |
bind -n M-6 select-window -t 6 | |
bind -n M-7 select-window -t 7 | |
bind -n M-8 select-window -t 8 | |
bind -n M-9 select-window -t 9 | |
bind -n M-0 last-window | |
# url view using fzf | |
bind -n M-u run "cut -c3- ~/.tmux.conf | sh -s _fzfurlview #{pane_id}" | |
bind -n M-p run "cut -c3- ~/.tmux.conf | sh -s _fpp #{pane_id}" | |
# layout with a small panel at the bottom | |
bind 0 select-layout d537,173x46,0,0[173x38,0,0,0,173x7,0,39,1] | |
# rename the session (not the window) | |
bind F2 command-prompt -p rename-session 'rename-session %%' | |
# tmux-resurrect | |
set -g @resurrect-save 'S' | |
set -g @resurrect-restore 'R' | |
set -g @resurrect-capture-pane-contents 'on' | |
set -g @resurrect-strategy-vim 'session' | |
run-shell /home/cs/Dev/tmux-resurrect/resurrect.tmux | |
# tmux-open | |
# run-shell /home/cs/Dev/tmux-open/open.tmux |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment