Compare commits
2 commits
56044695df
...
35ddc6a33c
Author | SHA1 | Date | |
---|---|---|---|
35ddc6a33c | |||
b23382ee8e |
4 changed files with 41 additions and 10 deletions
|
@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -88,6 +88,7 @@ in
|
|||
promise-async
|
||||
vim-fugitive
|
||||
vim-lion
|
||||
vim-tmux-navigator
|
||||
] ++ pluginsWithConfig;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -26,14 +26,6 @@ require("which-key").register({
|
|||
},
|
||||
})
|
||||
|
||||
-- fast window move
|
||||
require("which-key").register({
|
||||
["<C-h>"] = { "<C-w>h", "Move window left" },
|
||||
["<C-j>"] = { "<C-w>j", "Move window down" },
|
||||
["<C-k>"] = { "<C-w>k", "Move window up" },
|
||||
["<C-l>"] = { "<C-w>l", "Move window right" },
|
||||
})
|
||||
|
||||
-- tab
|
||||
require("which-key").register({
|
||||
["<tab>"] = {
|
||||
|
|
|
@ -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 {
|
||||
|
@ -62,8 +78,18 @@ in
|
|||
plugins = with pkgs.tmuxPlugins; [
|
||||
sensible
|
||||
tmux-fzf
|
||||
vim-tmux-navigator
|
||||
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 +106,6 @@ in
|
|||
end
|
||||
end
|
||||
'';
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue