{ lib, pkgs, config, ... }: let username = config.defaultUser or "henrov"; moduleName = "kitty"; # Paths and files assetPath = ../../../assets/system/conf/${moduleName}; programFiles = builtins.readDir assetPath; files = lib.genAttrs (builtins.attrNames programFiles) (name: { src = "${assetPath}/${name}"; }); in { # Install kitty system-wide environment.systemPackages = [ pkgs.kitty ]; # Home Manager user-specific configuration _module.args.hmUsers = { ${username} = { programs.kitty.enable = true; # Extra user config snippet programs.kitty.extraConfig = '' # Include the Catppuccin-Mocha theme include themes/Catppuccin-Mocha.conf ''; # Copy all asset files into ~/.config/kitty/ home.file = lib.mkMerge ( map (name: { ".config/${moduleName}/${name}" = { source = files.${name}.src; }; }) (builtins.attrNames files) ); }; }; }