1
Files
flake-nixinator/home/modules/kitty/default.nix

123 lines
3.4 KiB
Nix

# TODO: Expose some settings
{
config,
lib,
mylib,
...
}: let
inherit (config.modules) kitty color;
in {
options.modules.kitty = import ./options.nix {inherit lib mylib;};
config = lib.mkIf kitty.enable {
programs.kitty = {
enable = true;
shellIntegration.enableFishIntegration = true;
font = {
name = "${config.modules.color.font}";
size = 12;
};
keybindings = {
"kitty_mod" = "ctrl+shift";
"kitty_mod+enter" = "launch --cwd=current";
"kitty_mod+j" = "next_window";
"kitty_mod+k" = "previous_window";
"kitty_mod+l" = "next_layout";
};
settings = {
editor = config.home.sessionVariables.EDITOR;
scrollback_lines = 10000;
window_padding_width = 10; # Looks stupid with editors if bg doesn't match
# hide_window_decorations = "yes";
enabled_layouts = "grid,vertical,horizontal";
allow_remote_control = "yes"; # For nnn file preview or nvim scrollback
listen_on = "unix:@mykitty";
tab_bar_min_tabs = 2; # Don't show a single tab
tab_bar_edge = "bottom";
tab_bar_style = "powerline";
tab_powerline_style = "round";
tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
#
# Color Theme
#
# The basic colors
background = color.hexS.base;
foreground = color.hexS.text;
selection_foreground = color.hexS.base;
selection_background = color.hexS.rosewater;
# Cursor colors
cursor = color.hexS.rosewater;
cursor_text_color = color.hexS.base;
# URL underline color when hovering with mouse
url_color = color.hexS.rosewater;
# Kitty window border colors
active_border_color = color.hexS.lavender;
inactive_border_color = color.hexS.overlay0;
bell_border_color = color.hexS.yellow;
# OS Window titlebar colors
wayland_titlebar_color = "system";
macos_titlebar_color = "system";
# Tab bar colors
active_tab_foreground = color.hexS.base;
active_tab_background = color.hexS.lavender;
inactive_tab_foreground = color.hexS.text;
inactive_tab_background = color.hexS.crust;
tab_bar_background = color.hexS.base;
# Color for marks (marked text in the terminal)
mark1_foreground = color.hexS.base;
mark1_background = color.hexS.lavender;
mark2_foreground = color.hexS.base;
mark2_background = color.hexS.mauve;
mark3_foreground = color.hexS.base;
mark3_background = color.hexS.sapphire;
# The 16 terminal colors
# black
color0 = color.hexS.subtext1;
color8 = color.hexS.subtext0;
# red
color1 = color.hexS.red;
color9 = color.hexS.red;
# green
color2 = color.hexS.green;
color10 = color.hexS.green;
# yellow
color3 = color.hexS.yellow;
color11 = color.hexS.yellow;
# blue
color4 = color.hexS.blue;
color12 = color.hexS.blue;
# magenta
color5 = color.hexS.pink;
color13 = color.hexS.pink;
# cyan
color6 = color.hexS.teal;
color14 = color.hexS.teal;
# white
color7 = color.hexS.surface2;
color15 = color.hexS.surface1;
};
};
};
}