Skip to content

Instantly share code, notes, and snippets.

@cesalazar
Last active May 11, 2020 23:57
Show Gist options
  • Save cesalazar/ea2332eb4689062feb37e0b7f92b090d to your computer and use it in GitHub Desktop.
Save cesalazar/ea2332eb4689062feb37e0b7f92b090d to your computer and use it in GitHub Desktop.
.tmux.conf.local
# 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