{ lib, config, pkgs, ... }:

let
  cfg = config.snowhawk.kitty;
  macos = config.snowhawk.macos.enable;
in
{
  options.snowhawk.kitty = {
    enable = lib.mkEnableOption "kitty home-manager module";
  };

  config = lib.mkIf cfg.enable {
    programs.kitty = {
      enable = true;
      shellIntegration.enableFishIntegration = true;

      settings =
        let
          macos_fonts = {
            font_family = lib.mkForce "family=\"JetBrainsMono Nerd Font Mono\" style=\"Light\"";
            bold_font = lib.mkForce "family=\"JetBrainsMono Nerd Font Mono\" style=\"Regular\"";
            italic_font = lib.mkForce "family=\"JetBrainsMono Nerd Font Mono\" style=\"Light Italic\"";
            bold_italic_font = lib.mkForce "family=\"JetBrainsMono Nerd Font Mono\" style=\"Regular Italic\"";
          };
          linux_fonts = {
            font_family = "family=\"JetBrainsMono Nerd Font\" style=\"ExtraLight\"";
            bold_font = "family=\"JetBrainsMono Nerd Font\" style=\"Light\"";
            italic_font = "family=\"JetBrainsMono Nerd Font\" style=\"ExtraLight Italic\"";
            bold_italic_font = "family=\"JetBrainsMono Nerd Font\" style=\"Light Italic\"";
          };
        in
        {
          background = "#050505";
          background_opacity = 0.98;
          font_size = 12;

          # allow_remote_control = "yes";
        } // (if !macos then linux_fonts else macos_fonts);

      extraConfig =
        let
          kitten = "${pkgs.kitty}/bin/kitten";
        in
        ''
          include ${../../home/kitty/alacritty-colors.conf}

          # map ctrl+k ${pkgs.writeShellScript "kitten-snap" "${kitten} @ get-text --self --ansi > /tmp/test"}
        '';
    };
  };
}