{ config, ... }:
{
  programs.ghostty = {
    enable = true;
    package = config.lib.test.mkStubPackage { outPath = null; };
    systemd.enable = true;
    settings = {
      theme = "catppuccin-mocha";
      font-size = 10;
    };
    themes = {
      catppuccin-mocha = {
        palette = [
          "0=#45475a"
          "1=#f38ba8"
          "2=#a6e3a1"
          "3=#f9e2af"
          "4=#89b4fa"
          "5=#f5c2e7"
          "6=#94e2d5"
          "7=#bac2de"
          "8=#585b70"
          "9=#f38ba8"
          "10=#a6e3a1"
          "11=#f9e2af"
          "12=#89b4fa"
          "13=#f5c2e7"
          "14=#94e2d5"
          "15=#a6adc8"
        ];
        background = "1e1e2e";
        foreground = "cdd6f4";
        cursor-color = "f5e0dc";
        selection-background = "353749";
        selection-foreground = "cdd6f4";
      };
    };
  };

  nmt.script = ''
    servicePath=home-files/.config/systemd/user/app-com.mitchellh.ghostty.service
    serviceOverridesPath=$servicePath.d/overrides.conf

    assertFileExists $serviceOverridesPath
    assertFileContent $(normalizeStorePaths $serviceOverridesPath) \
      ${builtins.toFile "ghostty-service-overrides" ''
        [Unit]
        X-SwitchMethod=keep-old
        X-Reload-Triggers=/nix/store/00000000000000000000000000000000-ghostty-config /nix/store/00000000000000000000000000000000-ghostty-catppuccin-mocha-theme
      ''}

    assertFileContent \
      home-files/.config/ghostty/config \
      ${./example-config-expected}
  '';
}
