When enabling the tmux program, Home manager creates the following configuration:
cat ~/.config/tmux/tmux.conf
# ============================================= # # Start with defaults from the Sensible plugin # # --------------------------------------------- # run-shell /nix/store/j1g9s4wyq38gjrxp1jic360s5vscr7kf-tmuxplugin-sensible-unstable-2017-09-05/share/tmux-plugins/sensible/sensible.tmux # ============================================= # set -g default-terminal "screen" set -g base-index 0 setw -g pane-base-index 0 set -g status-keys emacs set -g mode-keys emacs setw -g aggressive-resize off setw -g clock-mode-style 12 set -s escape-time 500 set -g history-limit 2000
Including tmux-sensible is reasonable, but unneeded.
I’ve been doing fine on vanilla tmux for years, with just an updated escape-time
.
To remove that, unset sensibleOnTop
:
programs.tmux = { enable = true; sensibleOnTop = false; };
This leaves the following tmux.conf
which still overrides some of tmux’s options for backwards compatibility, I presume:
cat ~/.config/tmux/tmux.conf
set -g default-terminal "screen" set -g base-index 0 setw -g pane-base-index 0 set -g status-keys emacs set -g mode-keys emacs setw -g aggressive-resize off setw -g clock-mode-style 12 set -s escape-time 500 set -g history-limit 2000
I’d prefer to have an empty configuration file to start with1, but I haven’t found a way to do that yet.
For example, tmux’s default value for the
↩︎default-terminal
option istmux-256color
but Home Manager sets it toscreen
. I don’t know what that option does, so I’d rather have it set to whatever tmux thinks is a good default so I don’t have to figure that out.