{ user ? throw "user argument is required" }: { config, lib, pkgs, ... }: let hmConfig = config.home-manager.users.${user.name}; in { home-manager.users.${user.name} = { programs = { kitty = { enable = true; font = { name = builtins.head hmConfig.theme.font.monospace.names; package = builtins.head hmConfig.theme.font.monospace.packages; inherit (hmConfig.theme.font) size; }; extraConfig = '' confirm_os_window_close 0 include theme.conf ''; }; matugen.settings.templates.kitty = { input_path = ./theme.conf; output_path = "${hmConfig.xdg.configHome}/kitty/theme.conf"; }; }; theme.extraConfig = "${lib.meta.getExe (pkgs.writeShellApplication { name = "reload-kitty"; runtimeInputs = with pkgs; [ procps ]; text = "exec pkill kitty -SIGUSR1"; })} &"; home.persistence."/cache${user.home}".directories = [ "${hmConfig.xdg.relativeCacheHome}/kitty" ]; }; }