Live data from Hacker News

Kitty – a fast, featureful, GPU based terminal emulator

sw.kovidgoyal.net

121–130 of 323 posts

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

#121
post #110
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…

Text rendering is very complex. GPU text rendering is however unlikely to be faster then "native" text rendering. But it could likely make scrolling more smooth.

Rendering the vector fonts into cached bitmaps is complex. Rendering the final buffer by blitting those bitmaps isn't very.

Smooth scrolling is inherently bounded by the vsync rate of the display. As long as you can render the terminal's pixel buffer with new characters and send it to front for the next flip, all within some portion of the time you have between frames, it's as smooth as it can get. Missing a frame will cause stutter, and make it non-smooth. Given the fact that terminal doesn't necessarily need to render if there are no changes, using GPU seems like an overkill for regular use.

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

#122
post #56
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.

This nice study goes into nicely thought out detail to compare speed of emulators, I recommend it. Urxvt is not so blazing fast at latency, and it manages great scrolling speed by dropping content. (It's my current emulator of choice though !) https://lwn.net/Articles/751763/

Lovely I came here just for benchmarking of this kind, it's a shame that kitty isn't tested in the article though.

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

#123
post #23

What I could really use would be a terminal emulator that is: a library that I can feed data directly into (without a pty) LGPL, MIT, or BSD able to quickly serialize its internal state (make me a blob) able to restore state if I feed it a blob of saved state, even across different software builds portable to recent versions of Linux and Windows

Theres no way you can build a terminal emulator without a PTY and still expect terminal UIs (eg stuff that uses ncursors) to work.

Moreover, the session state saving is not possible either since you need to save the internal state of running programs as well as their cached output (saving the output is really very easy but it's the least of your worries given the specifications you've described).

You might also find this problem is better solved with a $SHELL replacement rather than a terminal emulator.

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

#124
post #33

I've been using Kitty for a month now. I really like it. It's slightly less usable out of the box than iTerm 2. The default shortcuts are very counterintuitive (no CMD T for new tab or CMD W to close tab). But editing the preferences is straightforward. I prefer it to iTerm because it's so. Damn. Fast. It's the only software (besides Sublime) I run on my laptop that actually feels like it's using the 40 years of tran…

Why do you need ligature support?

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

#125

Gpu powered terminal emulator? This performs almost 100x worse than Mac OS Terminal.app. Cat-ting a long file takes 100x longer to draw on the screen! Isn’t it supposed to be faster if it’s “GPU powered”?

what is the benefit of using a GPU powered terminal on my Integraded 6000 ? rather than my iterm2 ?

Iterm2 also supports GPU accel. FYI

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

#126

Terminal emulators have tabs/windows, tmux has tabs/windows, vim has tabs/windows. All with different keyboard shortcuts and semantics. I wish this were all unified into a single window/tab/keybinding model. That was easy to code against and write your own interactions for. I keep hoping I'll see a boundary-pushing project like Kitty do something new in this space.

Don't forget the (tiling) window managers, that also have tabs/windows.

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

#127
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.

Usually, offloading to the GPU will get you higher throughout but also higher latency. Although of course this assumes a sane software renderer, X11 API calls will take forever.

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

#128
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…

And now I feel old. Menus in a terminal? Videos explaining a terminal emulator? Migration guide from arbitrary terminal emulators configs? Get off my lawn! Kids these days, never having had to compile their own xterm and then seeing the light of our holy lord and saviour rxvt, and its endless man pages.

There's a huge configuration doc[1], and the homepage already does a very good job of introducing you to its features. You have to read that, yeah, but maybe you can get a screen reader to read it for you. Dunno.

[1] https://sw.kovidgoyal.net/kitty/conf.html

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

#130

Another GPU-accelerated terminal emulator is alacritty[0]. Although it has a lot less features than kitty and really is only usable with tmux (or GNU screen, whatever), it is more or less perfect for people who want their terminal to do just one thing and that one thing pretty fast. Disclaimer: Haven't tried kitty yet and using alacritty for a nearly a year now. [0] https://github.com/jwilm/alacritty

I prefer alacritty because it's less bloated. I always use dvtm
Post reply on HN