Live data from Hacker News

Libghostty is coming

mitchellh.com

251–260 of 275 posts

Re: Libghostty is coming

#251

Earlier quoted context omitted.

Can you tell my why I should consider ghostty? (as a daily Terminal.app user)

Everyone telling you that it's fast because iTerm2 is slow. Terminal.app is already faster than iTerm2 and on par o very close to most other alternatives in terms of speed. I also used Terminal until recently and don't use any of the advanced features alternatives provide. The main reason to switch from Terminal.app is truecolor support. The terminfo thing is annoying but I just setenv TERM in ssh config. Better spli…

macOS Tahoe adds true color support to Terminal.app https://www.macrumors.com/2025/06/16/apples-terminal-app-mac...

Re: Libghostty is coming

#252
post #126

Earlier quoted context omitted.

To add... The missing scrollbars feel painful to me. I don't even want them for scrolling, really. I want the visual reference for: "How much content is in this window" and "Where am I in that content" I still use it daily but it means I have to switch tools for certain things, and reading log files or log output is one of the more common reasons I switch. I should probably look into trying to get the scrollback info…

Suggestion to use Klogg ( https://github.com/variar/klogg ) for reading log files. I always was on the camp of " tail -f file.log " but since discovering this app, I saw the light.

Or lnav (https://lnav.org/).

Re: Libghostty is coming

#253
I love this. I've been thinking about writing a clone of SecureCRT (great terminal emulator, sadly greatly expensive as well) for years.

If I could "just" use libghostty, that would be great!

Re: Libghostty is coming

#254

I really want to like Ghostty but: - Still no ⌘F for find. - No way (that I know of) to select previous output or specific string and copy with only keyboard shortcuts. - No ⌘. sending CTRL-C (muscle memory and being advertised as native to the Mac is what one would expect). - Fonts still don't render as nicely as in Terminal.app. I've fiddled with `font-thicken-strength` and it's close, but not quite. Probably impos…

Interesting, I really prefer the font rendering in Ghostty! I'm with you on the first two items, though.

Despite these shortcomings I still use it daily since the first time I tried it, and have come to really love the project in general. I often won't hop to new software if it offers friction like this, but Ghostty pulled me in despite some snags.

Zed is also wonderful software, though it took me way longer to commit to using it daily.

Re: Libghostty is coming

#255

Earlier quoted context omitted.

What exactly does it do better than iTerm2? I gave it a try a few weeks ago and wasn't at all impressed, but maybe I just don't know what I'm missing.

Great question. For me it feels faster (anecdotally) and certain TUI components don’t break. It also is probably my bias of loving his work as well as everyone at work using it. Hive mentality I suppose.

My experience is similar. Stuff doesn't break and it feels extremely snappy. I've switched to Zed for the same reason. I came to realize that I work much better with faster, simpler software, even if it's missing some nice-to-haves. It feels like you're closer to the problem you're trying to solve.

Re: Libghostty is coming

#256

Earlier quoted context omitted.

Have you tried the suggestions in https://ghostty.org/docs/help/terminfo#ssh ? I don't know what issue you may be experiencing but this solved my issue with using htop in an ssh session.

For another approach, personally I found just doing `TERM=xterm-256color ssh ` more practical than the solutions at https://ghostty.org/docs/help/terminfo#ssh

That is essentially the 2nd solution recommended. I think ghostty could do this itself as a hack. If the target binary is ssh (heuristic, but, ok), inject TERM=xterm-256color into env of the child process at launch.

I guess it isn't a huge deal to have every user to modify their ssh_config instead, but it's an ergonomic pain point for many new users.

Re: Libghostty is coming

#257
post #178

Earlier quoted context omitted.

I use terminology today, which is also "fast." The major issue I run into with ghostty vs terminology is that ssh in ghostty is broken due to the terminfo thing. I don't fully understand why ghostty can't pretend to be a different terminal that remotes know about (for now), but I assume there's some reason.

Have you tried the suggestions in https://ghostty.org/docs/help/terminfo#ssh ? I don't know what issue you may be experiencing but this solved my issue with using htop in an ssh session.

Copying terminfo around is more inconvenient than I want to put up with for now. Overriding TERM is fine, I guess.

Mostly terminology is just a fairly good terminal, so I have little incentive to switch. :)

Re: Libghostty is coming

#258
I want to like Ghosty, but not being able to search has been a deal breaker. Guess the alternatives to search are use tmux or grep the ghosty log, but tmux and I have never clicked, and searching the log is not user friendly for how often I find myself wanting to search terminal history. Ghosty has a lot of features I would want, but somehow it is missing search. https://www.reddit.com/r/Ghostty/comments/1i0g2ge/how_to_fin...

Maybe this concern doesn't apply to libghostty, as I think search would be more of a UI concern.

Re: Libghostty is coming

#259
post #206

Earlier quoted context omitted.

I recently migrated from vim to neovim and you can just migrate everything. I forgot where I found this but put this in ~/.config/nvim/init.vim " Load vim configs set runtimepath^=~/.vim runtimepath+=~/.vim/after let &packpath = &runtimepath source ~/.vimrc Then in my zshrc (well... I organize differently) I have the function function _exists() { command -v "$1" &> /dev/null } alias_vim() { if (_exists nvim) then ali…

FWIW, zsh has a commands hash to make stuff like this potentially easier and cleaner. The following isn't quite how I'd do it, but is functionally equivalent. (( $+commands[vim] )) && alias vi=vim (( $+commands[nvim] )) && alias vi{,m}=nvim

I wasn't aware of +commands, thanks. Though I'm not sure this is easier and you can translate mine to bash trivially

Yours isn't technically equivalent though it is functionally. If we have both vim and nvim then we'll alias vi twice.

Also, your program provides less clarity. It saves lines but at a large cost to readability. I tend to share my dotfiles with newbies a lot so readability is very meaningful.

I wrap mine up in functions too because at the end of my alias file I can add something like this

  # aliases.zsh
  main() {
    alias_ls || echo "ls aliasing failed"
    alias_vim || echo "vim aliasing vailed"
  }

  main
It's a bit overkill and I never expect a simple alias like that to fail but there are three distinct advantages I get for being just a tad more verbose:

1) I have more complicated versions to deal with things like fd and batcat which have different names different operating systems (`fd` vs `fd-find` / `bat` vs `batcat`) and some additional configurations.

2) I can disable the alias by commenting out one line

3) knowing exactly where the alias is being loaded and thus what aliases are loaded.

Bonus) fails loudly but continues (it's an alias, I don't want you fail fail)

A few extra keystrokes are worth this advantage imo. Especially since I'm using vim so it's actually not any additional typing lol

It's style, so the choice is up to you and they'll accomplish the same things, but I'm just explaining why I use this design pattern. I've only given a stripped down snippet of code so I hope this context helps explain the larger pictures and how it can be used for larger needs.

Re: Libghostty is coming

#260

Earlier quoted context omitted.

I'm still not quite sure what you mean. You can still {|,>} output from a program, so less and grep still help. Or do you mean when you inevitably forget? Well then yeah you're at the mercy of your terminal but as others mentioned ghostty has a hack to help as well as some other terminals. But this should also help reinforce why you should pipe more often and write to files (or tee). It sucks but not making the same…

> "you can't analyze the data you didn't record" It IS recorded. It's right there in scrollback (Literally the default buffer to record). It's easily accessible with most tooling, including nice scrolling, mouse support, find/search, etc... Except in Ghostty, it's not so accessible. No find, no scrollbars. I end up having to dump it into another tool, which at least they make pretty easy (ex: https://ghostty.org/docs…

  > Don't confuse your preferences with "correct" :P
Don't overlook the point by fixating on a technicality

  > I'm doing just fine with code and best practices
Yet, you aren't following best practices

  > So no - by default I use a pager... just about never. Why would I when I have absolutely everything in scrollback by default 99.9% of the time?
Fewer capabilities. But those were already explained and not just by me. There really should be no need for such huge scrollbacks, you have history

  > I'm simply stating that this is a rough edge on an otherwise lovely tool.
No one has disagreed with this point. I think everyone even agrees
Post reply on HN