nix-home/home/modules/programs/my-kitty/darwin.nix

64 lines
1.9 KiB
Nix
Raw Normal View History

{ pkgs, config, lib, ... }:
let
cfg = config.nki.programs.kitty;
cmd = "cmd";
in
with lib; {
programs.kitty = mkIf (cfg.enable && pkgs.stdenv.isDarwin) {
# Darwin-specific setup
darwinLaunchOptions = [
"--single-instance"
"--start-as=fullscreen"
];
# Tabs and layouts keybindings
keybindings = {
# Backslash
"0x5d" = "send_text all \\u005c";
"${cmd}+shift+o" = "launch --location=vsplit";
"${cmd}+o" = "launch --location=hsplit";
"${cmd}+shift+r" = "layout_action rotate";
## Move the active window in the indicated direction
"${cmd}+shift+h" = "move_window left";
"${cmd}+shift+j" = "move_window up";
"${cmd}+shift+k" = "move_window down";
"${cmd}+shift+l" = "move_window right";
## Switch focus to the neighboring window in the indicated direction
"${cmd}+h" = "neighboring_window left";
"${cmd}+j" = "neighboring_window up";
"${cmd}+k" = "neighboring_window down ";
"${cmd}+l" = "neighboring_window right";
}
# Tab bindings
// builtins.listToAttrs
(map
(x: attrsets.nameValuePair "${cmd}+${toString x}" "goto_tab ${toString x}")
(lists.range 1 9));
extraConfig = mkAfter ''
# Tab settings
tab_bar_edge top
tab_bar_style powerline
tab_powerline_style slanted
tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.lightgreen}{fmt.bold}[{index}]{fmt.nobold} {fmt.fg.tab}{title}"
active_tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}"
tab_bar_background #555
active_tab_font_style normal
# Layouts
## Mouse focus
focus_follows_mouse yes
## Layout options
# Layouts
enabled_layouts Splits
inactive_text_alpha 0.65
# MacOS specific
macos_option_as_alt = left
'';
};
}