Files
nixos-dotfiles/home/tmux.nix

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 -h -l 20% -c "#{pane_current_path}" ; select-pane -t 0 ; split-window -v -l 15% -c "#{pane_current_path}" ; select-pane -t 0'
'';
};
}