A few months ago, a new terminal emulator was released. It’s called ghostty, and it has been a highly anticipated terminal emulator for a while, especially due to the coverage that it received from ThePrimeagen, who had been using for a while, while it was in private beta.
Just gotta adjust your TERM value. You can do it per host in your ssh config, if you don’t wanna set it globally.
SetEnv TERM=xterm-256color
Yep - but seeing the thread about it in their github repo was also a turn off. I don’t have to do it with other clients.
I also believe that has to happen on each server - and we’ve got a lot of servers. I’m not particularly keen on needing to change anything to get my terminal emulator to, well, work.
While I get the ghostty team’s PoV - I don’t agree with it.
That’s fair, I get the frustration.
I guess I’ve been cutting Mitchell some slack since this is a passion project for him - his goal was to build the modern terminal he always wanted, so an opinionated feature set was always expected. And, new terminals with actual new features need their own terminfo entries, it just comes with the territory. It’ll sort itself out as the databases catch up.
For now, though, you don’t need to address this on an individual host level. I’m in the same boat at work with thousands of servers. If you want to give Ghostty another shot, this wrapper handles the issue automatically, even for servers where AcceptEnv doesn’t include TERM or where SetEnv is disabled:
ssh() { if [[ "$TERM" == "xterm-ghostty" ]]; then TERM=xterm-256color command ssh "$@" else command ssh "$@" fi }
Just drop it in your
.bashrc
(orfunctions.sh
if you rock a modular setup) and SSH connections will auto-switch to compatible terminfo while keeping your local session full-featured. Best of both worlds. ¯\_(ツ)_/¯I really appreciate your response. It’s incredibly helpful and deeply thoughtful. Thank you.
What comes next is not directed at you but rather provides some other color based on a few things you touched on.
I worked for the guy. He gets no slack from me. He changed my life in many ways both wonderful and not. And while it’s unlikely I’d work with or for him again he was a net positive in my life.
I don’t see product the way he sees product which is exactly as you note: it’s for him. Some of that “for him” approach has resonated deeply with the OSS community and still does. He changed Cloud Computing in the best of ways. He’s a giant. And we’re lucky he’s around.
This small ghostty issue (and some others I can’t recall now) was emblematic of our core disagreement about how we build systems for a broader user base. That’s why I said I get their PoV but disagree with it. I think it would be fair to say using the product reminded me a lot about this particular tension. Reading the GitHub issues even more so. That’s wholly on me.
I am thankful to ghostty for helping me explore many more options. I had been using iterm2 on my laptop and struggling to find something I liked on my Linux workstation. Checking out the new hotness after all the hype still resulted in a net positive.
Nevertheless I am genuinely happy it’s working for you and, again, thanks for your kind and calm response.
Wow - you’ve certainly got a unique perspective on the situation, and I’m grateful that you took the time to share it. Thank you. It’s fascinating to hear from someone who actually worked with the guy.
I can relate to both the Linux struggle and your “I get their PoV but disagree” reaction. Had the same feeling when Kitty’s creator dismissed multiplexers as “a hack” - as a longtime tmux user, that stung. Great tool, but that philosophy never sat right with me. I bounced between most of the more popular terminals for years (Wezterm rocks but has performance issues, Kitty never felt quite right) so I was eager for Ghostty to drop. So far it’s delivered on what I was hoping for (despite needing a minor tweak or two out of the box).
I’m glad you found my last response so helpful. Sounds like exploring alternatives worked out well for you in the end, which is what matters. Cheers. :)