Skip to content

Instantly share code, notes, and snippets.

@abhirup-dev
Created September 1, 2020 03:22
Show Gist options
  • Save abhirup-dev/930347adcdaa64a118e10392030154bd to your computer and use it in GitHub Desktop.
Save abhirup-dev/930347adcdaa64a118e10392030154bd to your computer and use it in GitHub Desktop.
Quick SSH tmux config
unbind C-b
set -g prefix C-z
bind-key C-a send-prefix
# split panes using | and -
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
unbind '"'
unbind %
bind N new
# switch panes using Alt-arrow without prefix
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
bind -n M-h select-pane -L
bind -n M-l select-pane -R
bind -n M-k select-pane -U
bind -n M-j select-pane -D
bind m resize-pane -Z
# reload config
# Enable mouse mode (tmux 2.1 and above)
set -g mouse on
######################
### DESIGN CHANGES ###
######################
# loud or quiet?
set -g visual-activity off
set -g visual-bell off
set -g visual-silence off
setw -g monitor-activity off
set -g bell-action none
## VI mode (https://sanctum.geek.nz/arabesque/vi-mode-in-tmux/)
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel
## Overriding copy-mode binding
bind -n 'PageUp' copy-mode
# source-file ~/.tmux/plugins/tmux-themepack/basic.tmuxtheme
# set -g @plugin 'mattdavis90/base16-tmux'
# set -g @colors-base16 'default-dark'
# set -g @plugin 'dracula/tmux'
# neovim colors in tmux
## only this line might not be enough
set -g default-terminal "xterm-256color"
## Needs this line also to overrides the default color
set-option -ga terminal-overrides ",xterm-256color:RGB" # older tmux? replace "RGB" with "Tc"
# set-default colorset-option -ga terminal-overrides ",xterm-256color:Tc"
## For better ESC speed in vim
set-option -sg escape-time 10
# # Enabling copy on WSL
# # bind -n M-w run -b "tmux show-buffer | clip.exe"
#
# # List of plugins
# set -g @plugin 'tmux-plugins/tpm'
# set -g @plugin 'tmux-plugins/tmux-yank'
# set -g @plugin 'tmux-plugins/tmux-resurrect'
# set -g @plugin 'tmux-plugins/tmux-continuum'
#
# run-shell ~/.tmux/plugins/tmux-yank/yank.tmux
# run-shell ~/.tmux/plugins/tmux-resurrect/resurrect.tmux
# run-shell ~/.tmux/plugins/tmux-continuum/continuum.tmux
#
# set -g @yank_with_mouse on
# set -g @continuum-restore 'on'
#
# run -b '~/.tmux/plugins/tpm/tpm'
# # for vim
# set -g @resurrect-strategy-vim 'session'
# # for neovim
# set -g @resurrect-strategy-nvim 'session'
#
# Send the same command to all panes/windows/sessions
# Source: https://scripter.co/command-to-every-pane-window-session-in-tmux/
bind E command-prompt -p "Command:" \
"run \"tmux list-panes -a -F '##{session_name}:##{window_index}.##{pane_index}' \
| xargs -I PANE tmux send-keys -t PANE '%1' Enter\""
# Send command only to current session
bind C-e command-prompt -p "Command:" \
"run \"tmux list-panes -s -F '##{session_name}:##{window_index}.##{pane_index}' \
| xargs -I PANE tmux send-keys -t PANE '%1' Enter\""
# Start window numbering at 1
set -g base-index 1
bind -r [ switch-client -p
bind -r ] switch-client -n
# status bar theme - from https://gist.github.com/rajanand02/9407361
set -g status-bg 'colour235'
set -g message-command-fg 'colour222'
set -g status-justify 'centre'
set -g status-left-length '100'
set -g status 'on'
set -g pane-active-border-fg 'colour154'
set -g message-bg 'colour238'
set -g status-right-length '100'
set -g status-right-attr 'none'
set -g message-fg 'colour222'
set -g message-command-bg 'colour238'
set -g status-attr 'none'
set -g status-utf8 'on'
set -g pane-border-fg 'colour238'
set -g status-left-attr 'none'
setw -g window-status-fg 'colour121'
setw -g window-status-attr 'none'
setw -g window-status-activity-bg 'colour235'
setw -g window-status-activity-attr 'none'
setw -g window-status-activity-fg 'colour154'
setw -g window-status-separator ''
setw -g window-status-bg 'colour235'
set -g status-left '#[fg=colour232,bg=colour154] #S #[fg=colour154,bg=colour238,nobold,nounderscore,noitalics]#[fg=colour222,bg=colour238] #W #[fg=colour238,bg=colour235,nobold,nounderscore,noitalics]#[fg=colour121,bg=colour235] #(whoami) #[fg=colour235,bg=colour235,nobold,nounderscore,noitalics]'
set -g status-right '#[fg=colour235,bg=colour235,nobold,nounderscore,noitalics]#[fg=colour121,bg=colour235] %r '
# to see custom timezone https://stackoverflow.com/a/39868365/9587133
setw -g window-status-format '#[fg=colour235,bg=colour235,nobold,nounderscore,noitalics]#[default] #I #W #[fg=colour235,bg=colour235,nobold,nounderscore,noitalics]'
setw -g window-status-current-format '#[fg=colour235,bg=colour238,nobold,nounderscore,noitalics]#[fg=colour222,bg=colour238] #I #W #F #[fg=colour238,bg=colour235,nobold,nounderscore,noitalics]'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment