Files
dotfiles/.tmux.conf
T
2026-08-12 15:57:01 +00:00

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"'