Files
nixos-configs/hosts/pinwheel/modules/tmux/default.nix
T

87 lines
2.4 KiB
Nix

{ pkgs, config, ... }:
let
colors = config.lib.colors.terminal;
dim = builtins.elemAt colors.bright 0;
in
{
home-manager.users.alex = {
programs.tmux = {
enable = true;
baseIndex = 1;
keyMode = "vi";
# Allow vi mode to be enabled instantly
escapeTime = 0;
plugins = [
pkgs.tmuxPlugins.sensible
{
plugin = pkgs.tmuxPlugins.resurrect;
extraConfig = ''
set -g @resurrect-capture-pane-contents 'on'
'';
}
{
plugin = pkgs.tmuxPlugins.continuum;
extraConfig = ''
# Remove date/time etc. on the right side
set -g status-right ""
set -g @continuum-restore 'on'
set -g @continuum-save-interval '10'
'';
}
];
extraConfig = ''
set -g renumber-windows on
# 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"
set-option -g allow-rename off
set -g set-clipboard on
# Status line colors
set -g status-fg '#${colors.foreground}'
set -g status-bg '#${colors.status}'
# Status window colors
set -g window-status-current-style bg='#${colors.status}',fg='#${colors.cursor}'
set -g window-status-style bg='#${colors.status}',fg='#${dim}'
set -g pane-border-style fg='#${colors.background}'
set -g pane-active-border-style fg='#${colors.background}'
set -g pane-border-lines "heavy"
# Remove accidental `suspend-client` triggers
unbind C-z
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Move panes shortcuts
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Resize panes
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
# Move windows
bind -r Left swap-window -t -1 \; select-window -t -1
bind -r Right swap-window -t +1 \; select-window -t +1
'';
};
};
}