{ config, inputs, lib, pkgs, ... }: { config = lib.mkIf config.patagia.desktop.enable { programs.ghostty = { enable = true; enableFishIntegration = true; package = inputs.ghostty.packages.${pkgs.system}.default; settings = { font-size = 12.5; font-family = "TX-02"; font-family-bold-italic = "Monaspace Xenon"; font-style-bold = "Bold"; font-style-italic = "Light Oblique"; font-style-bold-italic = "ExtraLight Italic"; font-synthetic-style = false; adjust-cursor-thickness = 4; adjust-underline-position = 5; adjust-underline-thickness = -2; mouse-hide-while-typing = true; unfocused-split-opacity = 1.0; shell-integration = "fish"; gtk-tabs-location = "hidden"; gtk-titlebar = true; gtk-titlebar-hide-when-maximized = true; window-padding-balance = true; window-padding-color = "extend"; window-theme = "system"; theme = "light:PatagiaLight,dark:PatagiaDark"; keybind = [ "alt+shift+c=copy_to_clipboard" "alt+shift+v=paste_from_clipboard" "ctrl+i=text:\\x09" "ctrl+m=text:\\x0D" "ctrl+tab=goto_split:previous" "ctrl+[=text:\\x1B" "super+enter=toggle_fullscreen" ]; }; }; xdg.configFile."ghostty/themes/PatagiaDark".text = let background = if config.patagia.oled.enable then "#000000" else "#14151a"; in '' background = "${background}" foreground = #b7bec7 cursor-color = #e7e7b7 selection-background = #84979f selection-foreground = #000000 palette = 0=#000000 palette = 1=#ff0035 palette = 2=#85ff00 palette = 3=#ffc900 palette = 4=#00a7ff palette = 5=#cb01ff palette = 6=#00e0ff palette = 7=#b7bec7 palette = 8=#444444 palette = 9=#ff8c88 palette = 10=#baff94 palette = 11=#ffe090 palette = 12=#88ccff palette = 13=#e38dff palette = 14=#97eeff palette = 15=#ffffff ''; xdg.configFile."ghostty/themes/PatagiaLight".text = '' background = #fefeff foreground = #222222 cursor-color = #aa0000 selection-background = #ffe6a4 selection-foreground = #483600 palette = 0=#000000 palette = 1=#9e001d palette = 2=#306300 palette = 3=#deae00 palette = 4=#00669e palette = 5=#7d009e palette = 6=#008a9e palette = 7=#f7f7f7 palette = 8=#b0b0b0 palette = 9=#ff0035 palette = 10=#509e00 palette = 11=#ffc900 palette = 12=#00a7ff palette = 13=#cb01ff palette = 14=#00e0ff palette = 15=#ffffff ''; xdg.desktopEntries = { ghostty-secondary = { categories = [ "System" "TerminalEmulator" ]; exec = '' ghostty --class=com.mitchellh.ghostty-secondary --font-style="ExtraCondensed" --font-style-bold="Bold ExtraCondensed" --font-style-italic="ExtraCondensed Oblique" -e bash ''; genericName = "Ghostty Secondary"; icon = "com.mitchellh.ghostty"; name = "Ghostty Secondary"; settings = { StartupWMClass = "com.mitchellh.ghostty-secondary"; TryExec = "ghostty"; }; terminal = false; type = "Application"; }; ghostty-devel = { categories = [ "System" "TerminalEmulator" ]; exec = '' ghostty --class=com.mitchellh.ghostty-devel --command="ssh -t devel" --initial-command="ssh -t devel" ''; genericName = "Ghostty (devel)"; icon = "com.mitchellh.ghostty"; name = "Ghostty (devel)"; settings = { StartupWMClass = "com.mitchellh.ghostty-devel"; TryExec = "ghostty"; }; terminal = false; type = "Application"; }; ghostty-devel-secondary = { categories = [ "System" "TerminalEmulator" ]; exec = '' ghostty --class=com.mitchellh.ghostty-devel-secondary --font-style="ExtraCondensed" --font-style-bold="Bold ExtraCondensed" --font-style-italic="ExtraCondensed Oblique" --command="ssh -t devel" --initial-command="ssh -t devel" ''; genericName = "Ghostty Secondary (devel)"; icon = "com.mitchellh.ghostty"; name = "Ghostty Secondary (devel)"; settings = { StartupWMClass = "com.mitchellh.ghostty-devel-secondary"; TryExec = "ghostty"; }; terminal = false; type = "Application"; }; }; }; }