44 lines
1.8 KiB
Bash
44 lines
1.8 KiB
Bash
set-option -sg escape-time 10
|
|
set -g default-terminal 'tmux-256color'
|
|
set -as terminal-features ',xterm-256color:RGB'
|
|
set -g history-limit 100000
|
|
set -g mouse on
|
|
set -g focus-events on
|
|
set -g status off
|
|
setw -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-pipe-and-cancel \
|
|
'if command -v wl-copy >/dev/null 2>&1; then wl-copy; elif command -v xclip >/dev/null 2>&1; then xclip -in -selection clipboard; elif command -v pbcopy >/dev/null 2>&1; then pbcopy; elif command -v clip.exe >/dev/null 2>&1; then clip.exe; else cat >/dev/null; fi'
|
|
|
|
# Prefix + Ctrl-H/J/K/L resizes panes.
|
|
bind-key -r C-h resize-pane -L
|
|
bind-key -r C-j resize-pane -D
|
|
bind-key -r C-k resize-pane -U
|
|
bind-key -r C-l resize-pane -R
|
|
|
|
# Ctrl-H/J/K/L moves seamlessly between tmux panes and Vim splits.
|
|
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
|
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?\\.?(view|l?n?vim?x?)(diff)?(-wrapped)?$'"
|
|
bind-key -n C-h if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
|
|
bind-key -n C-j if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
|
|
bind-key -n C-k if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
|
|
bind-key -n C-l if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
|
|
bind-key -n 'C-\' if-shell "$is_vim" 'send-keys C-\' 'select-pane -l'
|
|
|
|
bind-key -T copy-mode-vi C-h select-pane -L
|
|
bind-key -T copy-mode-vi C-j select-pane -D
|
|
bind-key -T copy-mode-vi C-k select-pane -U
|
|
bind-key -T copy-mode-vi C-l select-pane -R
|
|
bind-key -T copy-mode-vi 'C-\' select-pane -l
|
|
|
|
set -g @plugin 'tmux-plugins/tpm'
|
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
set -g @plugin 'roosta/tmux-fuzzback'
|
|
set -g @fuzzback-popup-size '90%'
|
|
set -g @fuzzback-popup 1
|
|
set -g @fuzzback-fzf-colors 'gutter:-1,bg+:-1'
|
|
|
|
if-shell 'test -x "$HOME/.tmux/plugins/tpm/tpm"' \
|
|
'run-shell "$HOME/.tmux/plugins/tpm/tpm"'
|