nix-config/modules/tmux/default.nix

71 lines
1.5 KiB
Nix

{
config,
pkgs,
lib,
...
}:
{
programs.tmux = {
enable = true;
package = pkgs.tmux;
baseIndex = 1;
clock24 = true;
disableConfirmationPrompt = true;
mouse = true;
newSession = true;
prefix = "C-b";
shell = "${pkgs.fish}/bin/fish";
terminal = "screen-256color";
keyMode = "vi";
escapeTime = 0;
plugins = with pkgs; [
{
plugin = tmuxPlugins.resurrect;
extraConfig = ''
set -g @resurrect-strategy-nvim 'session'
set -g @resurrect-capture-pane-contents 'on'
'';
}
{
plugin = tmuxPlugins.continuum;
extraConfig = ''
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
set -g @continuum-save-interval '10'
'';
}
];
extraConfig = ''
set -s escape-time 0
set -g status-style bg=default,fg=white
set -g status-right '#[bg=default,fg=magenta]>> #S'
unbind %
bind "|" split-window -h
unbind '"'
bind - split-window -l 30 -v
bind r source-file ~/.config/tmux/tmux.conf \; display "Config reloaded!"
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
bind ? list-keys -a
unbind s
bind s run-shell "tmux-sessionizer"
unbind v
bind v choose-tree -Zw "join-pane -t '%%'"
'';
};
}