Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.
https://ghostty.org
# Configuration
## Config File
Reload the config file with `cmd+shift+,`, open the config file with `cmd+,`.
### File Location
The configuration file, `config`, is loaded from these locations in the following order^[https://ghostty.org/docs/config]:
#### XDG configuration Path (all platforms):
- `$XDG_CONFIG_HOME/ghostty/config`.
- if **XDG_CONFIG_HOME** is not defined, it defaults to `$HOME/.config/ghostty/config`.
#### macOS-specific Path (macOS only):
- `$HOME/Library/Application\ Support/com.mitchellh.ghostty/config`.
- macOS also supports the XDG configuration path mentioned above.
If both locations exist, they are loaded in the order above with conflicting values in later files overriding earlier ones. Configuration is optional and if no configuration file is found, Ghostty will use its defaults.
>[!Note]
> I had to create my config manually inside `~/.config/ghostty` on MacOS.
## Themes
### Default themes location (MacOS)
Default themes are located inside the `Ghostty.app`^[https://medium.com/@ezgitastan/how-to-customize-your-ghostty-terminal-for-a-personalized-experience-4083d815e0a7].
```
/Applications/Ghostty.app/Contents/Resources/ghostty/themes/
```
### List Themes
```bash
ghostty +list-themes
```
### Themes I like
#### PastelDark
[Base46 Themes Demo](https://base46.vercel.app/theme?name=pastelDark&lang=go)
```
palette = 0=#131a21
palette = 1=#2c333a
palette = 2=#31383f
palette = 3=#40474e
palette = 4=#4f565d
palette = 5=#ced4df
palette = 6=#d3d9e4
palette = 7=#b5bcc9
palette = 8=#ef8891
palette = 9=#EDA685
palette = 10=#f5d595
palette = 11=#9ce5c0
palette = 12=#abb9e0
palette = 13=#a3b8ef
palette = 14=#c2a2e3
palette = 15=#e88e9b
background = #131a21
foreground = #ced4df
cursor-color = #a3b8ef
selection-background = #40474e
selection-foreground = #ced4df
```
# Issues
## xterm-ghostty
When using [[Secure Shell (SSH)|SSH]] to connect to remote resources you may experience the `missing or unsuitable terminal: xterm-ghostty` error message, because the remote resource doesn’t have the `xterm-ghostty` [terminfo](https://man7.org/linux/man-pages/man5/terminfo.5.html) defined.^[https://vninja.net/2024/12/28/ghostty-workaround-for-missing-or-unsuitable-terminal-xterm-ghostty/]
### Copy Ghostty's terminfo to a remote machine
The following one-liner will export the terminfo entry from your host and import it on the remote machine^[https://ghostty.org/docs/help/terminfo#ssh]:
```bash
infocmp -x | ssh YOUR-SERVER -- tic -x -
```
The `tic` command on the server may give the warning `"<stdin>", line 2, col 31, terminal 'xterm-ghostty': older tic versions may treat the description field as an alias` which can be safely ignored.