Nope, Back to st

Written By: Jake Bauer | Posted: 2020-08-27 | Last Updated: 2020-08-27

I’ve been using Alacritty for about a month since I switched to it from st back at the end of July. It’s been a solid terminal, but it has one major drawback and one minor annoyance which have drawn me once again back to st.

In the blog post I linked above, I mentioned that Alacritty uses a lot more RAM compared to st. Granted, Alacritty does have a lot of features compared to st, but it’s not like I made any use of them nor can it really justify RAM usage that is this high:

 22.0 MiB +  25.2 MiB =  47.2 MiB       st (4)
 59.1 MiB +  84.4 MiB = 143.6 MiB       alacritty (4)

RAM usage was measured with ps_mem. Yep, that’s four st windows open and four Alacritty windows open. One of those st windows is the terminal in which I’m writing this blog post, and I also ran ps_mem in an st window. All of the terminals were freshly opened.

It’s not uncommon for me to have multiple terminal windows open like this. I’ll often have newsboat, aerc, weechat, two or more development terminals, and a scratchpad terminal all open at once. I also tend to jump between what I’m working on so I’ll frequently have something like four terminal windows open just for development as I’m working on two or three separate things at once. I might have 24GB of RAM on my desktop machine, but I’d still rather not have 0.5-1.0GB taken up by just terminal windows (this can easily happen when they have a lot of lines in their scrollback buffers).

My minor gripe with Alacritty is that it’s configured in YAML. Sure, I’m not changing my configuration often, but I still dislike it and prefer the method of configuring st over writing YAML. Besides, the two issues that I noted about st: crashing when displaying colour emoji and the delete key not working right in SSH sessions, are easy to work around.

The emoji problem is simply solved by either installing the libxft-bgra package, a patched version of libxft which can be found as a .deb package or in the Arch User Repositories, or by installing the Symbola font (ttf-symbola for Arch or fonts-symbola for Debian) which will be used as the font for rendering emoji and works just fine without libxft-bgra.

Regarding the delete key, I was already using set enable-keypad on in my .inputrc which fixes the problem locally, but in an SSH session all that is required is to run tput smkx and the delete key works on the remote server normally. Given how rarely I’m using the delete key on a remote server, this is not a big deal.

With all that Alacritty has to offer, I just haven’t realized any benefit over using st. st is very nice to both use and configure and I simply don’t need the features Alacritty has. I haven’t noticed it being any faster than st, it’s noticeably slower to launch than st, and it uses a lot more RAM than st.

This is my ninety-seventh post for the #100DaysToOffload challenge. You can learn more about this challenge over at https://100daystooffload.com.