Files
dotfiles/home/modules/kitty.nix
T

77 lines
2.0 KiB
Nix

{ config, pkgs, ... }:
let
c = config.theme.colors;
colorConf = ''
background ${c.bg}
foreground ${c.fg}
selection_background ${c.bg2}
selection_foreground ${c.fg}
cursor ${c.fg}
cursor_text_color ${c.bg}
url_color ${c.blue_b}
color0 ${c.bg1}
color8 ${c.bg2}
color1 ${c.red}
color9 ${c.red_b}
color2 ${c.green}
color10 ${c.green_b}
color3 ${c.yellow}
color11 ${c.yellow_b}
color4 ${c.blue}
color12 ${c.blue_b}
color5 ${c.purple}
color13 ${c.purple_b}
color6 ${c.aqua}
color14 ${c.aqua_b}
color7 ${c.fg4}
color15 ${c.fg1}
'';
in
{
programs.kitty = {
enable = true;
package = pkgs.emptyDirectory;
font = {
name = "JetBrainsMono Nerd Font";
size = 12;
};
settings = {
shell = "zsh --login";
window_padding_width = 12;
background_opacity = "1.0";
hide_window_decorations = "yes";
cursor_shape = "block";
cursor_blink_interval = 1;
scrollback_lines = 3000;
copy_on_select = "yes";
strip_trailing_spaces = "smart";
tab_bar_style = "powerline";
tab_bar_align = "left";
tab_bar_edge = "top";
shell_integration = "enabled";
};
keybindings = {
"ctrl+shift+n" = "new_window";
"ctrl+t" = "new_tab";
"ctrl+plus" = "change_font_size all +1.0";
"ctrl+minus" = "change_font_size all -1.0";
"ctrl+0" = "change_font_size all 0";
};
};
# Write theme colors into the auto conf files so they take effect
# regardless of OS dark/light mode setting
home.file.".config/kitty/dark-theme.auto.conf" = {
force = true;
text = colorConf;
};
home.file.".config/kitty/light-theme.auto.conf" = {
force = true;
text = colorConf;
};
home.file.".config/kitty/no-preference-theme.auto.conf" = {
force = true;
text = colorConf;
};
}