Alacritty, foot, wezterm, kitty form this block of "nextgen" terminal emulators. I do find them difficult to differentiate. I personally use foot as my daily driver, but that is just because alacritty happened to have some issues with nvidia drivers (bleh). But I chalk that up to nvidia, not alacritty.
Foot is Linux only and lightweight, take it as a Wayland version of Xterm with good defaults and almost no emulation options. The rest works in all major OS. Alacrity is all about GPU rendering speed at the cost of everything else (at some point it did not have scrollbars/history). Kitty and Wezterm are packed with features and more difficult to differentiate. They are all good though.
Ass I use Offpunk to surf the web and Chafa to display picture, my main concern is displaying images using the sixel protocol (or, in the case of kitty, its own protocol).
Last time I tried, Alacritty didn’t support sixel (while even xterm supports it)
I haven't stumbled upon any issues with alacritty + nvidia (lucky, perhaps). Though, mostly, I use vterm in emacs (unmatched customization & integration)
Wasn't for latency or throughput - I didn't notice any difference in latency, and difference in throughput is only visible when cat'ing 3MB of text.
However, for me the selling point was a text config file, which I can edit, backup, or store in git (unlike gnome-terminal, where customization was done either in GUI or in gconf, and while it's also text files somewhere they are difficult to work with).
I wrote something similar on top of TMUX and zsh. I use zsh hooks to dump the current TMUX pane to a file (/tmp/lastcmd) just before a new prompt is displayed; I also set variables $O1, $O2, ... to respective output lines. It never occurred to me to bind `less /tmp/lastcmd` to a key, though - good idea :)
(BTW: the problematic part was to make it fast enough not to be noticeable. The code that dumps the pane contents and searches for the start of the last output is written in Nim, in effect.)
It was possible in TMUX because it gives you programmatic access to the pane's content. It's probably possible to do the same with some terminals - urxvt uses Perl as an extension language, for example - but TMUX provides a compatibility layer, which means I don't need to rewrite the whole setup if I change the terminal emulator.
My understanding is that kitty has an automatic (opt-out) update feature [0][1]. I don't really like the idea of a terminal doing that.
However I like the fact that kitty developer(s) actively improved the state of the terminal emulation with their new keyboard and graphic protocols [2].
Nope, that's an update notification not an update. And its opt-in if you use kitty via a distribution package and opt-out if you use the standalone kitty binaries distributed by the developer. See https://sw.kovidgoyal.net/kitty/conf/#opt-kitty.update_check...
I certainly see Kitty is as a little crufty ("feature-packed" to some), but from my limited research it appears to be one of the fastest, so I can't really complain :-)
kitty is nice, but it has a problem with garbled unicode sequences (e.g. if you accidentally cat a binary file to standard output). It sometimes hangs up for a minute or two on seeing invalid unicode sequence. At least that was the case for several years, and so I switched to alacritty because it doesn't have this problem.
Nice, I like lightweight and modern terminal emulators. Just installed kitty and compared it in a sloppy way to foot [0] (by running `xxd /dev/urandom` side-by-side) and foot appears to be faster.
kitty is written in Python, which instantly lowers the ceiling for performance by an order of magnitude. I discarded it as an option in the past: the most important requirement for me is the terminal cannot crash, and I can't trust a Python program to do that.
Same and it also opens faster, which is important for me, as I use a tiling window manager and open/close terminals fairly often instead of using something like tmux.
I tried it for a few years a while back on macOS but it somehow felt off, I don't remember why, something to do with mouse selection. I went back to iTerm2 and that's that, you couldn't view images with feh and similar tools in macOS terminals for some reason so I had no reason to stay. Out of interest, why would I want anything faster than iTerm2 anyway? Never felt that my terminal is slow.
The main problem with iTerm2 is that the configuration is not via plain text and so it's impossible to keep track of your config in git. (I did try the dynamic profiles feature for a couples of years, but it's not the same). I use alacritty now, but I'm sure wezterm etc are also great.
in Settings -> General -> Preferences is a checkbox labeled "Load preferences from a custom folder or URL. I have that checked and the configs are saved in a text file of plist format.
On Mac, I have yet to find anything that can top the combo of Apple Terminal with the now-defunct Visor/TotalTerminal[0] haxie. Apple Terminal meets my needs well enough and TotalTerminal’s implementation of quake-style dropdown was the smoothest I’ve encountered on any platform.
iTerm2 has a dropdown window that can be enabled, but it’s surprisingly much more janky than TotalTerminal’s was despite being a first-party feature instead of a hack.
I've had the same issue with iTerm using neovim, rendering latency was just too much iTerm. However instead of Alacrity I've opted to use wezterm as it's nice to use Lua for both neovim and my terminal config.
As I broke away from windows a few years ago, I used the default terminal in popos, then got a Mac as my work machine. Then broke away from vscode to neovim and didn't like the default Mac terminal or iterm2, looked for a cross platform terminal, found alacritty and haven't looked back.
Are there other non-gpu accelerated terminals that would work just as well? Probably, but alacritty is installed, configured and works well for me
Use Wezterm is you want a modern rust based terminal with basic nice stuff like scrollbars.
https://github.com/alacritty/alacritty/issues/289#issuecomme...
Then being x-platform is also an easy differentiator of the 2
Last time I tried, Alacritty didn’t support sixel (while even xterm supports it)
Wasn't for latency or throughput - I didn't notice any difference in latency, and difference in throughput is only visible when cat'ing 3MB of text.
However, for me the selling point was a text config file, which I can edit, backup, or store in git (unlike gnome-terminal, where customization was done either in GUI or in gconf, and while it's also text files somewhere they are difficult to work with).
[0] https://github.com/kovidgoyal/kitty
(BTW: the problematic part was to make it fast enough not to be noticeable. The code that dumps the pane contents and searches for the start of the last output is written in Nim, in effect.)
It was possible in TMUX because it gives you programmatic access to the pane's content. It's probably possible to do the same with some terminals - urxvt uses Perl as an extension language, for example - but TMUX provides a compatibility layer, which means I don't need to rewrite the whole setup if I change the terminal emulator.
However I like the fact that kitty developer(s) actively improved the state of the terminal emulation with their new keyboard and graphic protocols [2].
[0] https://github.com/kovidgoyal/kitty/issues/2481
[1] https://github.com/kovidgoyal/kitty/pull/3544
[2] https://news.ycombinator.com/item?id=40378357
[0] https://codeberg.org/dnkl/foot
I use tmux for scrollback, panes, tabs, etc. So I'm happy there is an option for a barebones GPU terminal.
Deleted Comment
Renders faster than Alacritty or kitty.
iTerm2 has a dropdown window that can be enabled, but it’s surprisingly much more janky than TotalTerminal’s was despite being a first-party feature instead of a hack.
[0]: https://totalterminal.binaryage.com/
And it somehow managed to become popular and advertise itself without the "written in Rust" tagline. I like that. Ofc its written in Rust.
> Alacritty is a blazing fast, GPU accelerated terminal emulator. It’s written in Rust and uses OpenGL
https://jwilm.io/blog/announcing-alacritty/
Dead Comment