What's a good Linux terminal emulator that doesn't try to reinvent TMUX?

25 points by swidi ↗ HN
I don't need tabs, or sessions, or startup scripts or even mouse support. I just need a terminal with good colour support and fast performance, without any of the bells and whistles that are utterly wasted on TMUX users.

56 comments

[ 3006 ms ] story [ 3518 ms ] thread
Unsure what you consider as "good color support" but you might want to look at the original (xterm) or at rxvt.
I used to use

xterm -fn r24 &

to get a larger font on some Unix and IIRC Linux systems a while ago. Good memories of doing a lot of fun command-line stuff, including Unix command usage, writing shell scripts a la the examples in The Unix Programming Environment book, and also writing many command-line utilities in C, and later, in Python ... :)

I use Guake, mostly to bring up the "console" as a full screen overlay, like you would with Quake :)
As a former Guake user, I recommend you to try Tilix.
`rxvt`. Debian has a few different packages, for different build-time options.
Alacritty is simple and fast[0] (it does have mouse support, but no tabs, sessions, or startup scripts as far as I know. Configuration is all via config file.).

Is that the kind of thing that you were looking for?

[0] https://github.com/alacritty/alacritty

Regarding terminal emulators, I believe that by "fast" people usually mean "low latency" instead of "high throughput". Apparently alacritty has a good performance on thoughtput according its benchmark with vtebench, but it does not provide good latency performance according to [0].

[0] https://danluu.com/term-latency/

I agree, 34ms is unacceptable latency. Let's all use eshell in Emacs instead.
That reference is pretty old at this point, especially considering that some of those terminal emulators were very young projects still. I would search for new results before making a statement about performance.
I'm not sure how current that article is - in that article they state that the alacritty team had created an issue relating to latency[0] which was closed in favour of a different issue[1] which is still open.

The newer issue[1] appears to state that latency isn't an issue on Wayland as it already has frame scheduling support, but their proposed fix targets X11, MacOS and Windows.

I was quite surprised as I hadn't noticed any latency using alacritty, but I've been on Wayland for some time so that might be the reason.

[0] https://github.com/alacritty/alacritty/issues/673

[1] https://github.com/alacritty/alacritty/issues/3972

Doesn't it feel sketchy to run a terminal that isn't even packaged by Debian? I run a few non-packaged things, but I don't want my terminal, or shell, or kernel to be "some code from a some person on github".
Idk man, this is a successful project that's half a decade old[1], has over 40k stars, is wildly popular in eg. the UnixPorn and TWM communities, and is packaged by most other distros; I don't really see any cause for concern ¯\_(ツ)_/¯

[1]: Dated via the dev's release blog post: https://jwilm.io/blog/announcing-alacritty/

twm the windowmanager?
That's strange. I wonder why debian is lagging behind on packaging it? Alacritty is packaged by my package manager, so I never really thought about it much.

In addition, at some point I had a look, and the former terminal I used to use (termite[0]) deprecated itself in favour of alacritty as well so I can't even switch back (I mean I could, but it's now unmaintained.)

[0] https://github.com/thestinger/termite

I don't see how that is a property of a software. If it isn't in the repos of a distro, it is a property of the distro.

As you got systemd and non systemd distros, Debian is in this a distro w/o alacrity.

No, not being included in Debian reflects poorly on the software. It implies there's something "wrong" with it. Perhaps it's too new, or too arcane, or in some other fashion doesn't live up to the operating system's extremely high quality and security standards.

I don't think this would necessarily be true with other Linux based operating systems (perhaps RHEL), but certainly is true in this case.

OP mentioned good colour support, which alacritty does not have.
wezterm has lots of bells and whistles, but is fast and you can ignore the other features.
Yeah I used to use alacritty with the ligature patch, but swapped to wezterm as it supports ligatures natively. It's fast enough, maybe not as fast as alacrity or kitty.

I just don't use the built in multiplexer or whatever.

I think if you're running tmux, a lot of kitty/alacrity's performance is mooted anyway?

Yeah, tmux is not super fast. I really have liked wezterm, everything is just right for me. It does just enough of what tmux does that I use.
(comment deleted)
...unbind "new tab" button ?
Konsole is faster than Alacritty, but much easier to configure.

uxterm is the fastest.

    Latency in milliseconds

    Program    mean  std  min   90%   max
    uxterm     1.7   0.3  0.7   2     2.4
    mlterm     1.8   0.3  0.7   2.2   2.5
    Konsole    13.4  1.2  11.5  15    16.1
    Alacritty  15.1  1.2  12.8  15.9  26.3
Those Alacritty numbers look an awful lot like reporting framerate tuning rather than underlying performance (16.6ms latency being one frame at 60hz).
Unsure how that was measured, but I'd like to see urxvtd up there. I'd bet a beer it's statistically significant faster. :)
What's wrong with the default in whatever distro you're using?
Not all distros have a default (e.g. Arch)
In some sense it's not a good terminal emulator (I hit several glitches in it on macOS, though it seems to do better on my NixOS machine), but I'm in love with cool-retro-term for its gorgeous CRT-style visuals.

https://github.com/Swordfish90/cool-retro-term

I mention it because it doesn't have tabs, saved sessions, or any of the other features tmux handles.

So, it's not a bad fit for heavy tmux users.

I love Konsole, it's super customizable and easy to use.
A terminal emulator is a high-value large attack surface that any hacker worth his salt would love to get into the supply chain. Therefore, unless your Unix machines are toys, it's a good idea to stick to reputable and well-maintained software, and for me that means what's in the distro's default repos. Every time you add third-party gunk you open yourself up to exploits from God knows where.
I use urxvtd and LOVE it. It's blissfully fast with a smaller memory footprint than anything else I've tried.

edit: I should have mentioned, having the minimal overhead and most responsive terminal is a "tier 1" priority for me.

Urxvtd is the fastest, and lightest weight terminal period.

Either that, or something has changed since I spent a long time picking it.

And the name just rolls off the tongue!
Most distro-default/DE-default terminal emulators don't really make you do 'more' than just have a base terminal emulator. The extra stuff (in the likes of gnome-terminal for example) only surfaces when you actually use it, except for when you have duplicate key binds. If you don't use a DE, or don't like Qt/GTK based engines, urxvt and xterm are the best remaining options.

Zutty is an option if you don't mind trying (often) unpackaged software, but then st would fit as well with the performance difference being that Zutty leverages GPU rendering for more performance and st doesn't seem to do that by itself.

If graphics isn't your thing and you're just on the frame buffer directly, there is fbterm.

A lot of the 'advertised' emulators seem to be targeting aesthetic and 'cool' marketability, some are even based on electron or try to put filters on the output...

Why not just use tmux? It’s super nice.