{ config, pkgs, lib, ... }: let cfg = config.nmasur.presets.programs.ghostty; in { options.nmasur.presets.programs.ghostty.enable = lib.mkEnableOption "Ghostty terminal"; config = lib.mkIf cfg.enable { programs.ghostty = { enable = true; package = if pkgs.stdenv.isDarwin then pkgs.nur.repos.DimitarNestorov.ghostty else pkgs.ghostty; enableFishIntegration = true; enableBashIntegration = true; enableZshIntegration = true; installBatSyntax = false; # The file doesn't seem to exist in the pkg settings = { theme = config.theme.name; font-size = 16; macos-titlebar-style = "hidden"; window-decoration = false; macos-non-native-fullscreen = true; fullscreen = true; keybind = [ "super+t=unbind" # Pass super-t to underlying tool (e.g. zellij tabs) "super+shift+]=unbind" "super+shift+[=unbind" "ctrl+tab=unbind" "ctrl+shift+tab=unbind" ]; }; themes."gruvbox" = { background = config.theme.colors.base00; cursor-color = config.theme.colors.base04; foreground = config.theme.colors.base05; palette = [ "0=${config.theme.colors.base00}" "1=${config.theme.colors.base08}" "2=${config.theme.colors.base0B}" "3=${config.theme.colors.base0A}" "4=${config.theme.colors.base0D}" "5=${config.theme.colors.base0E}" "6=${config.theme.colors.base0C}" "7=${config.theme.colors.base05}" "8=${config.theme.colors.base03}" "9=${config.theme.colors.base08}" "10=${config.theme.colors.base0B}" "11=${config.theme.colors.base0A}" "12=${config.theme.colors.base0C}" "13=${config.theme.colors.base0E}" "14=${config.theme.colors.base0C}" "15=${config.theme.colors.base07}" "16=${config.theme.colors.base09}" "17=${config.theme.colors.base0F}" "18=${config.theme.colors.base01}" "19=${config.theme.colors.base02}" "20=${config.theme.colors.base04}" "21=${config.theme.colors.base06}" ]; selection-background = config.theme.colors.base02; selection-foreground = config.theme.colors.base00; }; }; }; }