{ lib, namespace, ... }:
with lib;
let
  inherit (lib.${namespace}) mkOpt;
in
{
  options.mjallen.programs.kitty = {
    enable = mkEnableOption "enable kitty terminal";

    font = {
      name = mkOption {
        type = types.str;
        default = "DejaVu Sans";
      };

      package = mkOpt types.package pkgs.dejavu_fonts "Default font package";

      size = mkOption {
        type = with types; int;
        default = 12;
      };
    };

    theme = mkOption {
      type = types.submodule {
        options = {
          file = mkOption {
            type = types.path;
            # Fallback default; global theme module sets this via mkDefault
            default = lib.snowfall.fs.get-file "modules/home/desktop/theme/palettes/nord.nix";
            description = "Nix file exporting a palette attrset.";
          };
        };
      };
      default = { };
      description = "Kitty theme palette configuration.";
    };
  };
}
