{ pkgs, ... }: { programs.tmux = { enable = true; prefix = "C-Space"; keyMode = "vi"; mouse = true; escapeTime = 10; terminal = "tmux-256color"; historyLimit = 50000; baseIndex = 1; plugins = with pkgs.tmuxPlugins; [ vim-tmux-navigator resurrect { plugin = continuum; extraConfig = '' set -g @continuum-restore 'on' set -g @continuum-save-interval '15' ''; } ]; extraConfig = '' # True-color + undercurl passthrough for nvim LSP underlines set -ga terminal-overrides ',*256col*:Tc' set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' set -g renumber-windows on setw -g pane-base-index 1 # Splits open in pane's CWD bind | split-window -h -c "#{pane_current_path}" bind - split-window -v -c "#{pane_current_path}" unbind '"' unbind % bind c new-window -c "#{pane_current_path}" # Reload config bind r source-file ~/.config/tmux/tmux.conf \; display "reloaded" # Vi copy-mode: v select, y yank to X11 clipboard bind-key -T copy-mode-vi v send -X begin-selection bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel 'xclip -selection clipboard -i' # Default layout on new session: main + right pane (~20%) + bottom pane (~15%) set-hook -g session-created 'split-window -v -l 15% -c "#{pane_current_path}" ; select-pane -t 1 ; split-window -h -l 20% -c "#{pane_current_path}" ; select-pane -t 1' ''; }; }