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