42 lines
1.1 KiB
Nix
42 lines
1.1 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}: let
|
|
sessionizer = lib.getExe (pkgs.writeShellScriptBin "tmux-sessionizer" (lib.readFile ./sessionizer.sh));
|
|
in {
|
|
programs.tmux = {
|
|
enable = true;
|
|
baseIndex = 1;
|
|
escapeTime = 0;
|
|
keyMode = "vi";
|
|
mouse = true;
|
|
terminal = "screen-256color";
|
|
historyLimit = 5000;
|
|
extraConfig = ''
|
|
bind -n M-s split-window -v
|
|
bind -n M-v split-window -h
|
|
bind -n M-S-s split-window -h -c "#{pane_current_path}"
|
|
bind -n M-S-v split-window -h -c "#{pane_current_path}"
|
|
bind -n M-h select-pane -L
|
|
bind -n M-j select-pane -D
|
|
bind -n M-k select-pane -U
|
|
bind -n M-l select-pane -R
|
|
bind -n M-q kill-pane
|
|
bind -n M-< resize-pane -L 10
|
|
bind -n M-> resize-pane -R 10
|
|
bind -n M-- resize-pane -D 10
|
|
bind -n M-+ resize-pane -U 10
|
|
bind -n M-z resize-pane -Z
|
|
bind -n M-u copy-mode
|
|
bind -n M-p previous-window
|
|
bind -n M-n next-window
|
|
bind-key -r f run-shell "tmux neww ${sessionizer}"
|
|
|
|
set-option -g renumber-windows on
|
|
'';
|
|
};
|
|
programs.zsh.initContent = ''
|
|
bindkey -s ^f "${sessionizer}\n"
|
|
'';
|
|
}
|