{ 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"; 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; }; }