99 lines
2.2 KiB
Nix
99 lines
2.2 KiB
Nix
{ user, home }:
|
|
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
hmConfig = config.home-manager.users.${user};
|
|
in
|
|
{
|
|
environment.persistence."/persist/cache"."${home}/.cache/kitty" = { };
|
|
|
|
home-manager.users.${user} = {
|
|
programs.kitty = {
|
|
enable = true;
|
|
|
|
font = {
|
|
name = builtins.head hmConfig.theme.font.monospace.names;
|
|
package = builtins.head hmConfig.theme.font.monospace.packages;
|
|
inherit (hmConfig.theme.font) size;
|
|
};
|
|
|
|
settings = {
|
|
confirm_os_window_close = 0;
|
|
enable_audio_bell = false;
|
|
};
|
|
|
|
keybindings =
|
|
{ }
|
|
// builtins.listToAttrs (
|
|
builtins.map
|
|
(k: {
|
|
name = k;
|
|
value = "no_op";
|
|
})
|
|
[
|
|
# Window management
|
|
"kitty_mod+enter"
|
|
"kitty_mod+n"
|
|
"kitty_mod+w"
|
|
"kitty_mod+]"
|
|
"kitty_mod+["
|
|
"kitty_mod+f"
|
|
"kitty_mod+b"
|
|
"kitty_mod+`"
|
|
"kitty_mod+r"
|
|
"kitty_mod+1"
|
|
"kitty_mod+2"
|
|
"kitty_mod+3"
|
|
"kitty_mod+4"
|
|
"kitty_mod+5"
|
|
"kitty_mod+6"
|
|
"kitty_mod+7"
|
|
"kitty_mod+8"
|
|
"kitty_mod+9"
|
|
"kitty_mod+0"
|
|
"kitty_mod+f7"
|
|
"kitty_mod+f8"
|
|
|
|
# Tab management
|
|
"kitty_mod+right"
|
|
"shift+cmd+]"
|
|
"ctrl+tab"
|
|
"kitty_mod+left"
|
|
"shift+cmd+["
|
|
"ctrl+shift+tab"
|
|
"kitty_mod+t"
|
|
"kitty_mod+q"
|
|
"kitty_mod+."
|
|
"kitty_mod+,"
|
|
"kitty_mod+alt+t"
|
|
|
|
# Layout management
|
|
"kitty_mod+l"
|
|
]
|
|
);
|
|
|
|
extraConfig = ''
|
|
include theme.conf
|
|
'';
|
|
};
|
|
|
|
theme = {
|
|
template.".config/kitty/theme.conf".source = ./theme.conf;
|
|
|
|
reloadExtraConfig = "${
|
|
lib.meta.getExe (
|
|
pkgs.writeShellApplication {
|
|
name = "reload-kitty";
|
|
runtimeInputs = with pkgs; [ procps ];
|
|
text = "exec pkill kitty -SIGUSR1";
|
|
}
|
|
)
|
|
} &";
|
|
};
|
|
};
|
|
}
|