Ghostty
Ghostty is out. It looks and feels great.
Despite being in the Discord server for about a year I didn't get access until today, which is pretty fair1.
In summary: I'm a big fan of Mitchell Hashimoto's work and his decision-making around this project. It seems like a labor of love (which is true for all terminal emulators) and I appreciate that I get all the benefit of that now.
I think in terms of latency-sensitivity I'm probably near the 95th %ile (in that even a small amount of latency when I'm typing causes me to get frustrated). So I can feel the difference between this and iTerm2, though it might still be a placebo.
tip: check your remote .bashrc
I'll write down more as I go, but here's the first: on the remote server I work on, when I logged in with Ghostty, there were no colors. The culprit was a line that looked like this in the ~/.bashrc
:
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
since Ghostty advertises itself as xterm-ghostty
but can take colors, you should change this to:
case "$TERM" in
xterm-color|*-256color|xterm-ghostty) color_prompt=yes;;
esac
This is a problem with your default ~/.bashrc
, not Ghostty (which correctly informs the terminfo database).
color scheme: nightowl
I use the Sarah Drasner's Night Owl theme in VSCode and everywhere else. I converted it to a Ghostty theme (imperfectly, I'm not a designer) here:
~ ❯ cat ~/.config/ghostty/themes/nightowl
palette = 0=#011628
palette = 1=#EF5350
palette = 2=#22DA6E
palette = 3=#ADDB67
palette = 4=#82AAFF
palette = 5=#C792EA
palette = 6=#21C7A8
palette = 7=#FFFFFF
palette = 8=#575656
palette = 9=#EF5350
palette = 10=#22DA6E
palette = 11=#FFEB95
palette = 12=#82AAFF
palette = 13=#C792EA
palette = 14=#7FDBCA
palette = 15=#FFFFFF
background = 011628
foreground = d6deeb
cursor-color = 7e57c2
selection-background = 5f7e97
selection-foreground = dee4ee
tmux on a remote server
I don't fully understand why this is an issue, but when I SSH into a remote server and try to start tmux
, I get the following error:
missing or unsuitable terminal: xterm-ghostty
The solution is to copy the terminfo information to the remote host like this:
infocmp -x | ssh $HOST -- tic -x -
credit for this fix goes to Kovid Goyal's kitty documentation as well as the corresponding Ghostty page
wishlist
I'd love a Windows build that is almost as good as the macOS one. For aspiring programmers out there (I guess pretty ambitious ones that can learn Zig) if you submit PRs for this, you might get a code review from @mitchellh
, which is I think pretty valuable. This is the starting point.
I didn't have time to actually contribute anything to the project. It would take a while for me to figure it out, and it wasn't a priority.