{ pkgs, ... }: let palette = import ./palette.nix; in { programs.kitty = { enable = true; font = { name = "FiraCode Nerd Font"; size = 12; }; settings = { enabled_layouts = "tall:bias=50;full_size=1;mirrored=false,fat,grid,stack"; scrollback_lines = 10000; enable_audio_bell = false; update_check_interval = 0; shell_integration = "enabled"; # Performance repaint_delay = 10; input_delay = 3; sync_to_monitor = "yes"; # Window layout window_padding_width = 10; confirm_os_window_close = 0; background_opacity = "0.85"; dynamic_background_opacity = "yes"; # Tabs (colors live in colors.conf so `qs-theme` can override them) tab_bar_style = "powerline"; }; keybindings = { "ctrl+shift+c" = "copy_to_clipboard"; "ctrl+shift+v" = "paste_from_clipboard"; "ctrl+shift+enter" = "new_window"; "ctrl+shift+]" = "next_window"; "ctrl+shift+[" = "previous_window"; "ctrl+shift+l" = "next_layout"; }; # Colors live in an include so a wallpaper-driven palette (`qs-theme`, # via matugen) can overwrite them without touching the rest of kitty.conf. extraConfig = "include colors.conf"; }; xdg.configFile."kitty/colors.conf".text = '' # Color palette (Tokyo Night inspired) — declared in home-manager. # Regenerated by `~/.local/bin/qs-theme ` (matugen) at runtime. background ${palette.hash palette.bgDark} foreground ${palette.hash palette.muted} selection_background ${palette.hash palette.selection} selection_foreground ${palette.hash palette.text} url_color ${palette.hash palette.teal} cursor ${palette.hash palette.text} cursor_text_color ${palette.hash palette.bgDark} active_tab_background ${palette.hash palette.blue} active_tab_foreground ${palette.hash palette.tabFgBright} inactive_tab_background ${palette.hash palette.tabBg} inactive_tab_foreground ${palette.hash palette.tabFg} # ANSI 16 color0 ${palette.hash palette.color0} color1 ${palette.hash palette.danger} color2 ${palette.hash palette.green} color3 ${palette.hash palette.yellow} color4 ${palette.hash palette.blue} color5 ${palette.hash palette.purple} color6 ${palette.hash palette.cyan} color7 ${palette.hash palette.muted} color8 ${palette.hash palette.color8} color9 ${palette.hash palette.danger} color10 ${palette.hash palette.green} color11 ${palette.hash palette.yellow} color12 ${palette.hash palette.blue} color13 ${palette.hash palette.purple} color14 ${palette.hash palette.cyan} color15 ${palette.hash palette.text} ''; }