Files
nixos-dotfiles/home/tmux.nix
MDietermann bc828f7adf Restructure packages into per-program home/programs/ modules
Replaces the monolithic packages-marvin.nix with one file per program
so hosts can opt in selectively. Adds docker, clamav, steam, and
audio keybindings for hivebrain. Fixes monitor order and switches
volume widget to PulseVolume.
2026-08-12 15:28:06 +02:00

52 lines
1.6 KiB
Nix

{ 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'
'';
};
}