id = "ghostty" name = "Ghostty" homepage = "https://ghostty.org" description = "Fast, native, feature-rich terminal emulator pushing modern features." icon = "SimpleIcons:ghostty" # The binary is `ghostty` on both platforms; on macOS it is # /Applications/Ghostty.app/Contents/MacOS/ghostty, which this machine has. executables = ["ghostty"] platforms = ["macos", "linux"] [dotfiles] # https://ghostty.org/docs/config lists the files Ghostty loads, in order: # $XDG_CONFIG_HOME/ghostty/config.ghostty and $XDG_CONFIG_HOME/ghostty/config # — "if XDG_CONFIG_HOME is undefined, it defaults to $HOME/.config" # $HOME/Library/Application Support/com.mitchellh.ghostty/config.ghostty and # .../config — "macOS also supports the XDG configuration path mentioned # above" and "all macOS-specific files are loaded *after* all XDG files". # # So these are two genuinely different directories that are both live on a Mac, # not one location under two spellings, and both are listed. The XDG one is # [configHome] because Ghostty reads $XDG_CONFIG_HOME on macOS too; the second # is written out literally because ~/Library/Application Support/ # exists on macOS alone — [appData] would have pointed a Linux consumer at # ~/.config/com.mitchellh.ghostty, which Ghostty never opens. The bundle # identifier is com.mitchellh.ghostty, from # /Applications/Ghostty.app/Contents/Info.plist on this machine. # # Directories rather than the four file names: the theme lookup uses "the # `themes` subdirectory of your Ghostty configuration directory" # (https://ghostty.org/docs/config/reference, `theme`), and a config split up # with `config-file` keeps its other pieces beside it. paths = [ "[configHome]/ghostty/", "~/Library/Application Support/com.mitchellh.ghostty/", ] # Ghostty's cache is a separate tree — ~/Library/Caches/com.mitchellh.ghostty # on this machine — so neither directory above has state to carve out. # A Ghostty config is fonts, colours, keybinds, shell-integration and window # settings, written by hand. Ghostty stores no credential under the home # directory. secret = [] # No machine_lines. Themes, fonts and keybinds are the reason to carry this # file. `command` and `working-directory` can name an absolute path, but both # are just as often a bare shell name or "home", so a rule on them would strand # a preference more often than it caught a machine detail.