{ pkgs, cLib, ... }: let getProgFor = cLib.getProgFor pkgs; tmux = getProgFor "tmux"; getProgFor' = cLib.getProgFor pkgs.scenics; tmux-githop = getProgFor' "tmux-githop"; in { programs.tmux = { enable = true; shortcut = "x"; baseIndex = 0; escapeTime = 0; clock24 = true; mouse = true; plugins = with pkgs.tmuxPlugins; [ sensible yank { plugin = onedark-theme.overrideAttrs (_: { patches = [./bar.patch]; }); extraConfig = "\n"; } { plugin = resurrect; extraConfig = '' set -g @resurrect-capture-pane-contents 'off' ''; } { plugin = continuum; extraConfig = '' set -g @continuum-restore 'on' set -g @continuum-boot 'off' set -g @continuum-save-interval '10' ''; } ]; extraConfig = '' set-option -g status-position top set-option -g default-terminal "tmux-256color" set-option -sa terminal-features ',xterm-256color:RGB' set-window-option -g mode-keys vi bind / split-window -h -c "#{pane_current_path}" bind \\ split-window -v -c "#{pane_current_path}" bind c new-window -c "#{pane_current_path}" bind-key -r s run-shell "${tmux} display-popup -E '${tmux-githop} -s -y'" bind-key -r f run-shell "${tmux} display-popup -E '${tmux-githop} -p -y'" bind-key -r m run-shell "${tmux} switch-client -t main" bind S choose-tree bind -r k select-pane -U bind -r j select-pane -D bind -r h select-pane -L bind -r l select-pane -R ''; }; }