49 lines
1.4 KiB
Nix
49 lines
1.4 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'
|
|
'';
|
|
};
|
|
}
|