feat(tmux): add keybinds option
parent
56044695df
commit
b23382ee8e
|
@ -64,6 +64,19 @@ in
|
|||
gpg.enable = true;
|
||||
navi.enable = true;
|
||||
tmux.enable = true;
|
||||
tmux.keybinds = {
|
||||
prefix = {
|
||||
"-" = "split-window -v";
|
||||
"|" = "split-window -h";
|
||||
"C-l" = "send-keys C-l";
|
||||
"R" = "source-file $XDG_CONFIG_HOME/tmux/tmux.conf \\; display-message 'Reloaded tmux.conf'";
|
||||
};
|
||||
copy-mode-vi = {
|
||||
"v" = "send -X begin-selection";
|
||||
"V" = "send -X select-line";
|
||||
"C-v" = "send -X rectangle-toggle";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ let
|
|||
runtimeInputs = with pkgs; [ tmux findutils coreutils procps fd ];
|
||||
text = ''
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
options=$(fd -HIg '.git' ~/ --min-depth 1 --max-depth 5 --type d --prune --exec dirname {} | fzf --filter "''$*")
|
||||
|
||||
if [[ -z $options ]]; then
|
||||
|
@ -43,6 +43,22 @@ in
|
|||
options.my.programs.tmux = {
|
||||
enable = mkEnableOption "tmux";
|
||||
autoAttach = mkEnableOption "autoAttach";
|
||||
keybinds = mkOption {
|
||||
type = with types; attrsOf (attrsOf string);
|
||||
default = { };
|
||||
description = "Keybinds for tmux";
|
||||
example = literalExample ''
|
||||
{
|
||||
prefix = {
|
||||
"-" = "split-window -v";
|
||||
"|" = "split-window -h";
|
||||
};
|
||||
copy-mode-vi = {
|
||||
"v" = "send -X begin-selection";
|
||||
};
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -64,6 +80,15 @@ in
|
|||
tmux-fzf
|
||||
yank
|
||||
];
|
||||
extraConfig =
|
||||
let
|
||||
mkKeybind = table: mapAttrsToList (keybind: value: "bind-key -T ${table} '${keybind}' ${value}");
|
||||
keybinds = flatten (mapAttrsToList mkKeybind cfg.keybinds);
|
||||
in
|
||||
''
|
||||
# Keybinds
|
||||
${concatStringsSep "\n" keybinds}
|
||||
'';
|
||||
};
|
||||
fzf.tmux.enableShellIntegration = true;
|
||||
fish.interactiveShellInit =
|
||||
|
@ -80,7 +105,6 @@ in
|
|||
end
|
||||
end
|
||||
'';
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue