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.
52 lines
1.6 KiB
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 -v -l 15% -c "#{pane_current_path}" ; select-pane -t 1 ; split-window -h -l 20% -c "#{pane_current_path}" ; select-pane -t 1'
|
|
'';
|
|
};
|
|
}
|