{
  lib,
  osconfig,
  ...
}: {
  programs.ghostty =
    lib.mkIf
    (osconfig.device.programs.terminal.enable && osconfig.device.programs.terminal.name == "ghostty")
    {
      enable = true;
      settings = {
        theme = "catppuccin-mocha";

        font-size = 9;
        font-family = "SauceCodePro NFP Bold";

        window-width = 230;
        window-height = 68;

        window-padding-x = 5;
        window-padding-y = 0;

        keybind = [
          "ctrl+shift+n=unbind"
          "ctrl+shift+i=unbind"
        ];
      };

      themes = {
        catppuccin-mocha = {
          background = "1e1e2e";
          cursor-color = "f5e0dc";
          foreground = "cdd6f4";
          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"
          ];
          selection-background = "353749";
          selection-foreground = "cdd6f4";
        };
      };
    };
}
