Live data from Hacker News

Kitty – a fast, featureful, GPU based terminal emulator

sw.kovidgoyal.net

141–150 of 323 posts

Re: Kitty – a fast, featureful, GPU based terminal emulator

#141
post #116
post #95

Why render with the GPU? I don't think I've seen a visually slow terminal emulator since 2000 and barely even in the 1990's. Text rendering is basically just blitting cached glyph bitmaps into a buffer, and CPUs have been more than overly fast doing that for eons. And CPU rendering has none of the compatibility problems/quirks that GPUs have. I can fire up a Gnome Terminal onto an unaccelerated Vesa X11 display if my…

Input latency makes for a bad user experience. People just usually don't notice it when typing as it's so common. See https://danluu.com/term-latency/ for measurements of some terminal software and discussion of why latency is bad. I'm not sure if Kitty is using GPU specifically to minimize latency, but it would be a good reason.

I work in video and as a consequence I tend to be very sensitive to latency (I've spent more hours than I can count trying to figure out subtle synchronization issues) yet I've just spent one minute trying to detect input latency on my st terminal (which fares pretty badly in the benchmark you linked) without success. And that's running inside tmux on top of that.

That being said I think it is valuable to have a reasonably fast terminal because it's not uncommon to have applications slow down dramatically if they output a lot of information on stdout/stderr while the terminal struggles to render everything.

Re: Kitty – a fast, featureful, GPU based terminal emulator

#142
post #5

This is somewhat of an aside, but the fastest terminal emulator I've ever used is rxvt-unicode. I don't even know if it utilizes the GPU (doubt it), but damn is it snappy. Try it out if you're on GNU / Linux.

At one point I tried lots of different terminal emulators but none of them were better than xterm.

Re: Kitty – a fast, featureful, GPU based terminal emulator

#145
post #139

Two simple speed tests: time find ~ /dev/null takes 8 seconds alacritty takes 8.5 seconds and uses 75% CPU kitty takes 15 seconds and uses 100% CPU konsole takes 16 seconds and uses 100% CPU time for i in {1..2000000}; do echo $i; done /dev/null takes 8 seconds alacritty takes 16 seconds and uses 75% CPU kitty takes 17 seconds and uses 100% CPU konsole takes 16 seconds and uses 98% CPU

I'm guessing you're on KDE (as am I) but it would be cool to see GNOME Terminal compared also. What I got from these results is that Konsole is already good enough to not bother switching.

Re: Kitty – a fast, featureful, GPU based terminal emulator

#146
post #95

Why render with the GPU? I don't think I've seen a visually slow terminal emulator since 2000 and barely even in the 1990's. Text rendering is basically just blitting cached glyph bitmaps into a buffer, and CPUs have been more than overly fast doing that for eons. And CPU rendering has none of the compatibility problems/quirks that GPUs have. I can fire up a Gnome Terminal onto an unaccelerated Vesa X11 display if my…

Nearly all text rendering libraries I've checked uses the GPU.

freetype definitely doesn't use the GPU and it's the most used font rendering library on Linux. What libraries did you check?

Re: Kitty – a fast, featureful, GPU based terminal emulator

#147

Not to be confused with Kitty, the terminal emulator. http://www.9bis.net/kitty/

Exactly. A bit unfortunate since this is a successor? to putty which is widely used so this name clash is kind of prominent.

Kitty is a fork of Putty, or maybe more precisely it's built on putty. I used it a lot in my previous job as we didn't have key-based auth on customer servers. With Kitty I could create profiles with login information, and where needed automatically switch user to root. Good times.

Re: Kitty – a fast, featureful, GPU based terminal emulator

#148
post #119

Tried it out and it seems ok. It does seem quite responsive and wasn't too hard to customize. Doesn't have a lot of discoverability out of the box since there's no menus: I had to search through the config file to figure out that tabs exist and that to make one I need to enable the command. I would love a guide of some sort: perhaps a video showing some of the features and how they would fit into a workflow. I toyed…

> Doesn't have a lot of discoverability out of the box since there's no menus

But it does have a comprehensive documentation page: https://sw.kovidgoyal.net/kitty/index.html#scrolling

Re: Kitty – a fast, featureful, GPU based terminal emulator

#149

Earlier quoted context omitted.

Kovid Goyal is infamous/known to be a bit toxic, see Calibre: https://news.ycombinator.com/item?id=8213946 (and the setuid "issue": https://lwn.net/Articles/465311/ )

He seems to be sarcastic especially when needled, opinionated, sometimes incorrect, and willing to argue a point. On the other hand he actually fixes things. Even if you actually were paying money for his services, which most of us are not, which would you prefer an obsequious kind person who didn't fix your problem or a dick that did. I would take the dick every day of the week.

> I would take the dick every day of the week.

That came out wrong...

Re: Kitty – a fast, featureful, GPU based terminal emulator

#150

Please forgive my ignorance: what do these terminal emulators do better than a basic terminal application, such as Terminal.app? My work with terminal is quite basic, I edit a few files, execute a few commands and sometimes cURL something. Terminal.app has some basic colors, has tabs, and works out of box without any visible performance issues for basic usage. What improvements would these emulators bring to my daily…

You may have better font rendering (anti-aliasing support on low-dpi screens), faster rendering and scrolling, better support for terminal attributes (crossed-out, overline, italic, etc). iTerm does a lot of optimizations so it can render and scroll faster (I volunteered to add a feature to it, and I dug a bit through the code).

For instance, iTerm supports italic, which Terminal.app doesn't. Gnome's terminal (vte, actually) does support overline (I volunteered adding it to iTerm, but I'm nowhere near close), which is handy for status lines, as well. I think there is one that takes ANSI codes seriously enough to support double-height and width.

To see what's missing, you can look into https://en.wikipedia.org/wiki/ANSI_escape_code

Post reply on HN