No shade to ghostty btw, it's an amazing product that I use every day. I just have to accept the lack of some of this usability polish.
- Font rendering (and cell size control) is still better on iTerm2, although Ghostty has been rapidly gaining
- Compact theme with thin titlebar tabs
- Profiles
- Window arrangements
- In-terminal API (which Mitchell has acknowledged as a useful feature)
The iTerm2 settings/preferences are a mixed bag. On the one hand, discoverability and settings search. On the other hand the panel is insane. Also iTerm2 doesn't have Ghostty's straightforward prefs file. I guess I want the best of both worlds: A well-organized settings UI, with search; and a file I can easily neovim.I wouldn't even need panes and tabs if I used tmux, but I can't be arsed: I used to but now much prefer using a GUI and not have to do tabs/scroll/selection differently than every other application.
All your tabs, splits, etc become tmux equivalents. It's very nice
- iTerm started pushing a ton of updates to add features that absolutely no one wanted. AI chat in the terminal emulator (not within the terminal), integrated web browser, etc.
- Some of those features turned out to introduce major vulnerabilities, so they had to push even more frequent updates to patch them. It’s extremely annoying to have your work interrupted by multiple update prompts in a day from your terminal.
- iTerm has visual glitches (line artifacts appearing when windows are opened/closed) on non-Retina monitors.
That said, I miss the GUI for changing settings. Ghostty’s settings file format requires looking up keys every time you want to change something, and it isn’t nearly as powerful as iTerm profiles.
VSCode started this way and for a long time settings could only be updated by editing a JSON file. The fancy settings UI was added much later on.
Wezterm config being Lua makes it almost impossible to get a UI ever. Also I don't understand why a terminal emulator config needs to be written in a general purpose programming language.
Occasionally I'll check out other terms people rave about. Tried kitty, wezterm, and a few others a while back, but wound up coming back to iterm.
Still, really happy to see things like this gaining traction. An easy way to implement high performance terminals in any application is a boon