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.