After experimenting with st (st terminal | suckless terminal | simple terminal), here are several reasons to use urxvt — or any comparable terminal emulator –
I spent a couple of days enjoying with st (st terminal | suckless terminal | simple terminal) after hoping to refresh my workflow slightly for 2019.
My present terminal is urxvt (rxvt-unicode) and the device itself hasn’t been up to date for almost 3 years. The undertaking turns out to be close to the top its lifecycle; its maintainer has obviously misplaced pastime and hasn’t constructed a group that wishes to pick out up the momentum. I might be satisfied to accomplish that, however do not need the luxurious of tonnes of loose time in this day and age.
So I downloaded
st and used to be first of all inspired by means of the claims made for “simplicity”. The codebase seems to be blank by means of comparability to urxvt and its obvious minimalism used to be interesting.
Then I attempted to in reality use it. Here are my observations.
urxvt daemon is quicker by means of design
strests relatively closely on its declare to being very lean and coffee on sources. In reality, if you happen to run a gadget with many terminals open,
urxvthas a daemon capability that makes it extra environment friendly than any non-daemon method might be, just by design.
(Lack of) .Xresources fortify in st terminal
stbegan out with out fortify for .Xresources, and nonetheless does not fortify it by means of default. You have to patch it in. Even with the patch
stnonetheless does not fortify fundamental capability. In my case, letter spacing isn’t supported, and it isn’t a best precedence over my different paintings such that I might hassle losing time writing a brand new patch myself. Urxvt already has local .Xresources fortify, in order that’s a reason why to keep with
Font rendering is subpar in st terminal
font rendering turns out to works higher the usage of
st, however once more, has restricted capability. I will foresee different fundamental lacking options and time wasted getting simple issues to paintings due to the
stphilosophy of “simplicity”, i.e. lacking options that
urxvthas already carried out.
Tabs are utterly unsupported in st terminal
tabs are some other function that is lacking in
st. Again, there is a patch (correction:
stdoes not fortify tabs in any respect; you’ve gotten to use some other suckless program referred to as
tabbed), however it is poorly carried out. In my case, you’ll be able to use tabs, however there is not any easy approach to identify them. Tab-naming depends upon your shell, and a few shells (zsh) are more straightforward for this than others (fish).
After clearing that hurdle, it turned into transparent that the tabs are now not in a position to the usage of .Xresources to set their font. So you can have tabs the usage of one font that may handiest be set by means of changing the supply code and re-compiling, as opposed to terminals that may be set the usage of .Xresources. As sooner than,
urxvt implements this capability correctly by means of drawing all of its font rendering information from .Xresources.
I was hoping that tab rendering could be sooner the usage of
st, however it isn’t: an identical to
urxvt, you’ve gotten to wager and tweak the tab-loading time the usage of
sleepinstructions. So that isn’t an development; may as smartly keep with
urxvtif tabs are your jam.
Also referring to tabs, I have heard folks declare that
st is predicated closely on
tmux for its capability. “You’re probably using tmux anyway, so who cares”, is the standard concept. Well, no, I do not inevitably use
tmux for each terminal, and it is a waste of sources to load it each time I would like tabs (or scrollback skill). Plus, I have discovered that
tmux does not all the time play great with keyboard shortcuts and it is general simply some other trouble when all you wish to have is the fundamentals (tabs, scrollback, and many others.) that might simply be constructed into the terminal itself.
a minimum of on Reddit, I have discovered the
stgroup to be surprisingly insular and unwelcoming. Apparently they are pleased with being exclusionary and “the Amish of software design”. I am not in particular involved — dealing with the
urxvtgroup used to be lower than amusing now and then — however
stis stunting its personal enlargement as a work of device by means of snubbing new folks as a substitute of welcoming them. That approach few folks use it, and few folks will give a contribution to it. So it stays trapped in a low-worth cycle the place
stlacks fundamental capability, nearly nobody makes use of it and nearly nobody cares to undertake or reinforce it. That’s how tasks lose momentum and die.
urxvtalready turns out most commonly dormant, however it is in accordance with rxvt and extends its predecessor considerably.
urxvt, then, is a sturdy, powerful piece of device that may satisfy maximum customers’ wishes. Instead of requiring patches to do nearly the rest helpful,
urxvtlets in for Perl extensions (tab fortify, as an example, arrives via a Perl extension). One of my peeves about
urxvtis that fortify for more moderen languages like Python and/or Ruby could be extra fashionable, since folks infrequently write the rest vital in Perl anymore. But it is nonetheless higher than having to throw your mind at patching the supply code in C any time you need to upload new capability. And as discussed, efficiency is not a bonus for
urxvtif you are the usage of the
Overall, there may be truly no receive advantages to the usage of
st somewhat than a rock-cast, smartly-established terminal emulator like
urxvt (rxvt-unicode). You can believe
urxvt, even with the daemon. It merely does not crash, ever, and the useful resource utilization could be very low (even though it does gather through the years, so you might want to re-boot every so often, relying on how a lot reminiscence you’ve gotten).
mlterm— most certainly the most productive “second choice” choice to
urxvt, if handiest as a result of it is most commonly the similar as
urxvtand remains to be in energetic building/upkeep.
kitty— amusingly, there may be some other terminal named “kitty”, however its founder gave the center finger to jerks on Reddit for harassing him concerning the identify. 🙂 Kitty seems to be nice, however it is relatively new and has problems with dependencies (harfbuzz, in particular) that I have observed in different device. If you’ll be able to make it be just right for you, nice. Hopefully, because the device matures, it’ll develop into a really perfect choice that is a minimum of as speedy as