# Load tmux config bind r source-file $HOME/.config/tmux/tmux.conf set -g @plugin 'tmux-plugins/tpm' # Bind prefix to C-a set-option -g prefix C-a unbind-key C-b bind-key C-a send-prefix # Allows vim to display colors correctly. set -g default-terminal "${TERM}" set -ga terminal-overrides ',*256col*:Tc' # Undercurl set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours - needs tmux-3.0 set -ga terminal-overrides ',*:Ss=\E[%p1%d q:Se=\E[2 q' # Status line set -g status on set -g status-position top set -g focus-events on set-option -sg status-interval 1 set-option -g status-style bg=#151515,fg=white set-option -g automatic-rename on set-option -g renumber-windows on set-option -g status-left "" set -ga status-left '#[bg=#151515]#[fg=white] #{?window_zoomed_flag,, }' set-option -g status-right "" set-option -g window-status-format " #[fg=#E1E1E1] #{window_index}#(echo ':')#{window_name}#{window_flag} " set-option -g window-status-current-format " #[bold bg=#151515] > #{window_index}#(echo ':')#{window_name}#{window_flag} " set -s escape-time 0 set -g display-time 1500 set -g status-interval 5 setw -g aggressive-resize on set -g status-keys vi set -g history-limit 10000 setw -g mode-keys vi setw -g mouse off # split panes bind h split-window -h bind v split-window -v unbind '"' unbind % bind s list-sessions bind-key N resize-pane -D 5 bind-key E resize-pane -U 5 bind-key I resize-pane -L 5 bind-key M resize-pane -R 5 bind-key M-n resize-pane -D bind-key M-e resize-pane -U bind-key M-i resize-pane -L bind-key M-m resize-pane -R # Use Alt-vim keys without prefix key to switch panes bind -n M-m select-pane -L bind -n M-n select-pane -D bind -n M-e select-pane -U bind -n M-i select-pane -R bind Escape copy-mode bind p paste-buffer bind -T copy-mode-vi v send -X begin-selection bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xsel -i --clipboard" bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xsel -i --clipboard" bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xsel -i --clipboard" # 0 is too far from ` ;) set -g base-index 1 # No delay for escape key press set -sg escape-time 0 # Fire up a floating terminal bind-key -n -N 'Toggle popup window' M-g if-shell -F '#{==:#{session_name},popup}' { detach-client } { display-popup -d "#{pane_current_path}" \ -xC -yC -w 80% -h 75% \ -E 'tmux attach-session -t popup || tmux new-session -s popup' } set -g @plugin 'tmux-plugins/tmux-resurrect' run '~/.config/tmux/plugins/tpm/tpm'