Rebuilding my terminal from a git clone
I spend more hours in a terminal than in any other window, and for years the configuration behind it lived nowhere: a .zshrc I had edited so many times I no longer knew which line did what, a colour scheme picked in a preferences dialog, an SSH config that only existed on one laptop. What follows is what that turned into. Not a list of everything installed on my Mac, but the terminal I actually type in and the two-part trick that keeps it reproducible: every setting is a plain-text file, and every plain-text file is in a repository. The terminal: Ghostty I moved off iTerm2 because I wanted a terminal that was fast and, more importantly, one whose entire appearance I could describe in text. Ghostty — A fast terminal with no tabs of its own to manage. Native on macOS, GPU-accelerated, and quick enough that a long build log scrolls without the fan spinning up. The configuration is a single plain-text file with one setting per line, which means the whole appearance of my terminal is a handful of lines in my dotfiles rather than a screenshot of a preferences pane I would have to redo on the next machine. Ghostty's config is a single file, ~/.config/ghostty/config.ghostty , with key = value on each line and # for comments. That is the whole format: theme = dracula font-family = "MesloLGS NF" font-size = 14 window-padding-x = 8 window-padding-y = 6 macos-option-as-alt = true copy-on-select = true The interesting part is theme . A Ghostty theme is just another config file, so any file dropped in ~/.config/ghostty/themes/ can be selected by name. Mine is Dracula and starts like this: palette = 0=#21222c palette = 1=#ff5555 palette = 2=#50fa7b background = #282a36 foreground = #f8f8f2 cursor-color = #f8f8f2 selection-background = #44475a Sixteen palette entries and a handful of colours: that is the difference between "my terminal looks right" and "my terminal looked right on the old machine". cmd+shift+, reloads the config without restarting, so tuning it is a live loop rathe