Someone explained to me once why a GPU-accelerated terminal emu might be useful, but I can't recall what you might use that for. Anyone have an example of what a good use case would be?
Linux
A community for everything relating to the GNU/Linux operating system (except the memes!)
Also, check out:
Original icon base courtesy of lewing@isc.tamu.edu and The GIMP
It's just faster and smoother when scrolling text, and all the work of shifting those pixels is pushed off onto specialized hardware that's much more efficient at it. I use alacritty which is a different GPU-accelerated terminal emulator and I'm very fond of it. It's not a huge deal, I just figure that if I have the hardware, I might as well use it.
Oh, that makes sense. It also makes more sense why it's called "Alacritty," now.
How much VRAM does alacritty use? On my machine, nvidia-smi reports 6MiB for konsole, which I'm seems to be some default reserved by Qt apps (eg dolphin reports the same amount)
Most of my open terminals are using 9 MiB, although one is using 17.
Bias warning: I spend most of my workdays in the terminal, and I'm also a contributor to Ghostty.
The most noticeable difference is smoothness when you're doing intensive terminal work like scrolling through large log files, running TUIs like btop/lazygit/yazi/lnav, or using multiplexers like tmux with multiple panes. Without GPU acceleration, you'll see stuttering and lag with heavy output or complex interfaces.
It also makes a big difference in editors like Neovim, especially with syntax highlighting in large files or when scrolling quickly through code. The rendering just feels snappier and more responsive overall.
Basically, if you spend significant time in the terminal (like I do), the improved responsiveness is immediately noticeable. If you mostly use it for basic shell commands, the benefit is negligible.
Long as we've got an expert here (not sarcastic, this is cool insight, thank you) what's the downside?
I am not the expert, but… Complexity?
Sometimes I use Foot instead of Alacritty/Wezterm to save RAM in extreme situations. Foot's also really nice because it uses a server/client model (again, saving RAM with many terminals), though I don’t know if that’s fundamentally impossible with GPU terminals.
Yeah, complexity is a valid concern. But if your workflow stands to benefit from the performance gains, I'd say it's a worthy trade-off.
The server/client model that Foot uses is actually pretty clever for RAM-constrained situations, especially if you're spawning tons of terminal instances. AFAIK, it's not fundamentally impossible with GPU terminals. Ghostty has single-instance mode on Linux that shares some resources, but the RAM savings aren't as dramatic because GPU terminals maintain texture buffers and rendering state in VRAM per instance.
The catch with Foot's approach is all I/O gets multiplexed on a single thread. That's fine for lightweight usage, but for workflows like mine that involve heavy TUIs and multiple tmux sessions with dozens of windows/panes with big scrollback buffers, it becomes a bottleneck when one or more panes are flooding output from scripts/playbooks/etc.
Ghostty has single-instance mode on Linux that shares some resources.
Oh I didn’t know this. I will have to try it sometime.
That’s fine for lightweight usage, but for workflows like mine that involve heavy TUIs and multiple tmux sessions with dozens of windows/panes with big scrollback buffers, it becomes a bottleneck when one or more panes are flooding output from scripts/playbooks/etc.
Yeah, for sure. Different use cases. Hence I can keep both installed, heh.
One downside on a laptop is reduced battery life.
I tried Ghostty briefly before, but you have to really try hard to notice preformance difference over Konsole.
Cool idea, but not useful for those that spend all day in a terminal imnho.
Like daq mentioned, reduced battery life is one downside if you're on a laptop. RAM usage is also higher, usually 50-100MB more per instance than traditional terminals (sometimes more depending on the terminal and your config).
In terms of Ghostty specifically, it's still a fairly young project, so the chance of hitting an edge case issue is higher than if you were using a more mature GPU-accelerated terminal.
Oh, thanks! I have lazyvim, btop, and Musikcube already, but I've never tried them in something like Ghostty or Alacritty. Might be worth trying!
Also, I'll be looking into some of those programs you mentioned!
I guess this is an honest opinion
I switched to Kitty because I felt that the increased speed produced a perceived improvement in my workflow.
https://news.ycombinator.com/item?id=29528343
There's probably no big reason. It's just that text is printed much faster. There's no huge gain, especially for general usage and most use cases. But why not? Why shouldn't you use the gpu if you have one?
If gpu would've been first, you'd wonder why you should use cpu if it's slower. Faster is always(?) better and I as a user don't really care if it is wayland or x11, why should I care about gpu or cpu? It just sounds great, but under the hood, it's just a marketing stunt.
It's nice to have but I just don't care. Like if earbuds last 6 or 8 hours. They charge within 5 or 10 minutes, why should I care? Or like losless audio. My headphones can't play it, and more important I can't hear a difference. It's nice, I'll take it, but I don't care about it.
Can I ssh into a server and not lose all productivity yet? Last time I tried ghostty I had to setup separate configs for my servers because they didn't recognize it :/
This is a terminfo issue. When you ssh into the server, run export TERM=xterm. That will tell the server how to handle your activity
The terminfo issue was resolved in the v1.2.0 release.
SSH shell integration is disabled by default, but once you enable it in your config you'll be good to go.
Why does a terminal emulator need GPU acceleration?
My dev env is in the terminal. It really does help speed it up to nearly ad fast as pure GUI.
Ok? So is mine. You maybe missed my comment about redirects? Why are people pushing so much to stdout that it is causing a slowdown?