4 ms·
We truly live in a golden age of terminal emulators. I still remember how essentially nothing happened in the terminal world from the late 90s until a few year
by p-e-w 4y ago
We truly live in a golden age of terminal emulators.
I still remember how essentially nothing happened in the terminal world from the late 90s until a few years ago (other than iTerm2 on macOS), and suddenly we have Kitty, Alacritty, Foot, and Wezterm, each developed independently of the others, and each of them better than anything that came before. It's amazing to watch these projects evolve.
- nextos 4y agoAre these better than XTerm wrt latency? I find XTerm (in Linux) and Terminal.app (in macOS) much snappier. These measurements seem to agree with my subjective perception: https://danluu.com/term-latency https://danluu.com/term-latency
- aumerle2 4y agokitty is much better than the rest on latency, see hardware based measurements https://thume.ca/2020/05/20/making-a-latency-tester/ https://thume.ca/2020/05/20/making-a-latency-tester/ showing kitty has the same latency as terminal.app on macos.
- p-e-w 4y agoThose measurements are several years old and thus say essentially nothing about the current generation of these terminals, which are all under very active development. XTerm is X11 only. Considering that Wayland is much more lightweight than X11, it's hard to imagine XTerm beating e.g. Foot, which is purpose-built for modern Wayland desktops, with almost no abstraction in between. Not to mention that these terminals have much better overall engineering than XTerm, whose README famously states "This is undoubtedly the most ugly program in the distribution." That line alone is enough for me to avoid XTerm like the plague.
- AceJohnny2 4y ago> Considering that Wayland is much more lightweight than X11 That's irrelevant. More relevant is that Wayland is adamant about presenting "perfect frames" (ie no frame tearing), which requires a sync/checkpoint for everything that's displaying, which inherently puts a lower bound on latency that non-sync-respecting X11 isn't subject to.
- arghwhat 4y agoWhat's more relevant is that Wayland is adamant on ensuring that scanout is an option as often as possible, making it extremely efficient and fast to put stuff on screen. Also, every pixel has a "checkpoint" sampled at the display refresh rate. With tearing, the checkpoint of a pixel differs from its neighbors, with each subsequent pixel (leading to rolling shutter artifacts), whereas without, all pixels show the same sample. At the cost of glitches, tearing and higher render load let's you put slightly newer data in the bottom third or quarter of your screen. Not really something to write home about, especially considering that X11-users commonly run external compositors exactly to get that tear-free behavior.
- tmtvl 4y agoWhy no love for Zutty (https://tomscii.sig7.se/zutty https://tomscii.sig7.se/zutty)? It's far more feature-complete than Kitty or Alacritty, without sacrificing much in way of performance or latency.
- rollcat 4y agoThese terminals still speak an archaic and anachronistic protocol, fragmentation in the supported feature set puts IE6 and Opera Mobile to shame, and TUI applications that run in terminal emulators feel completely out of place in a modern (modern = I'd say past 20, maybe 30 years) desktop environment. I can open vim, irssi, moc, htop, nethack, or a dozen other TUI apps, and every one of them has different key bindings, different color scheme (sometimes assuming/hardcoding white text on dark background, sometimes vice versa), different paradigm for supporting multiple buffers, different way to configure it, different way to exit - but each window still has the same icon in the task bar. KDE did this better in 1996. Mac did this better in 1984. Even if I stick 100% to using CLI (stdio) programs, the facilities have barely improved at all since the time job control was introduced - there's a lot of potential to actually innovate here, but that would probably require breaking out of the separate terminal+shell paradigm. There were more radical attempts, but AFAICT the bleeding edge of innovation in mainstream emulators is iTerm displaying the process tree in a popup. It's the most rich ecosystem of lowest common denominator software in existence. We have sRGB correct linear gamma blending, but Emacs in terminal still loads the wrong dark/light theme - unless you cobble together a hundred lines of custom elisp glue. I don't even understand why we need gamma blending, nobody can implement an actual production-quality graphics editor in a terminal (unless you want to double down on sixels...).