{ pkgs, config, ... }: { programs.tmux = { enable = true; shortcut = "a"; # aggressiveResize = true; -- Disabled to be iTerm-friendly baseIndex = 1; newSession = true; # Stop tmux+escape craziness. escapeTime = 0; # Force tmux to use /tmp for sockets (WSL2 compat) secureSocket = false; plugins = with pkgs; [ tmuxPlugins.better-mouse-mode ]; extraConfig = '' # https://old.reddit.com/r/tmux/comments/mesrci/tmux_2_doesnt_seem_to_use_256_colors/ set -g default-terminal "xterm-256color" set -ga terminal-overrides ",*256col*:Tc" set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q' set-environment -g COLORTERM "truecolor" # Mouse works as expected set-option -g mouse on # easy-to-remember split pane commands bind | split-window -h -c "#{pane_current_path}" bind - split-window -v -c "#{pane_current_path}" bind c new-window -c "#{pane_current_path}" # Set prefix to ctrl+a set -g prefix C-a # Remove old prefix unbind C-b # Send Ctrl+a to applications by pressing it twice bind C-a send-prefix # Vim bindings set-option -g mode-keys vi bind -n M-h select-pane -L bind -n M-j select-pane -D bind -n M-k select-pane -U bind -n M-l select-pane -R # Mouse mode ON set -g mouse on # Use vi keys set-window-option -g mode-keys vi set-option -g mode-keys vi # Use system clipboard bind-key -T copy-move-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xsel --clipboard --input" ''; }; programs.tmate = { enable = true; # FIXME: This causes tmate to hang. # extraConfig = config.xdg.configFile."tmux/tmux.conf".text; }; }