Switching to Ghostty
I’ve been using macOS Terminal.app
since I got my first MacBook Pro in 2006. It felt like home, I developed muscle memory with it, and it was always “just there” on any Mac I sat down at. But over the years, my tooling became more personalized. I built up custom aliases, scripts, and workflows that exist only on my machines. Now Terminal no longer feels like home when I sit down at any Mac.
What I want is shared configuration I can sync across my computers, preferably checked into git. I also want a native app with reasonable memory usage (looking at you, Electron).
Enter Ghostty.
My reason for choosing Ghostty is simple: the entire configuration lives in a single plaintext file at ~/.config/ghostty/config
.
font-family = Monaspace Krypton Var
font-size = 13
theme = Dracula+
cursor-style = block
mouse-hide-while-typing = true
background-opacity = 0.95
background-blur = 25
link-url = true
window-save-state = never
window-height = 38
window-width = 140
macos-icon = xray
desktop-notifications = true
I already have a repository that manages my dotfiles. I can add the Ghostty config file to the correct directory and update my install script to symlink it from the repo to the expected location. Now any changes I make can be shared between my work and personal machines with a simple git push
and git pull
.
Another feature I wanted was the ability to have clickable links in the output. When I create a pull request using the gh
CLI, I can click the PR URL that gh
prints to the terminal to open it in the browser. Ghostty’s configuration can enable this behavior with link-url = true
.
It’s only been a couple of days, and other than breaking my cmd-space
, type term
, hit return, curse at myself under my breath, cmd-q
, cmd-space
, type gho
, hit return routine, I’m really liking it. At the end of the day, it’s a terminal app. I can type stuff in, and it does what I expect. But it gives me native performance and a single config file.