Terminal emulators testing

So I thought about changing my good old setup based on urxvt, for the longest time, the thing that prevented me from using another terminal was the fact that I was way too confortable using mark-and-yank plugin to open url using keyboard shortcut. Having most of my exchange with other people through irc or integrated other IM in irc (via bitlbee) I do receive and check quite a lot of URLs during the day, and grabbing the mouse for that is a no-go for me.

But recently I switched to fully tmuxed environment, in the past I would start a tmux only when I needed one, but now I decided to get every term inside a tmux for a simple reason: to use tmux-open to replace mark-and-yank which beside having been pretty handy, does have some bugs, like not opening the highlighted url when pressing enter, I often found myself having to change focus 2-3 times and trying to press enter like crazy in order to hope for it to work, which kinda defeat the idea of gaining some time and confort from not using the mouse...

Another alternative could have been to use st some patches that does allow kinda the same thing, but I didn't find it convenient the few time I tried it in the past (can't recall what the issue was to be honnest).

So now that I have this setup and that I got used to opening urls using it, I realized I could actually switch terminal if I wanted, So I had a look at what were the hot stuff in this area, selected some, and ran a few tests.

I know, there are other terms, I missed kitty when I did this, and there are some other alternatives that I may not have included either because I didn't want to, or because I didn't like those.

List of terms tested

  • xterm
  • xfce4-terminal
  • urxvt
  • alacritty
  • termite
  • terminator
  • xst (fork of st)
  • aterm
  • terminology
  • cool-retro-term (just for fun)

Tests

  • speed
    • going to a project folder and time git --no-pager log -p
    • doing the same test within tmux
  • memory
    • start an empty term, look at memory consumption
    • run the speed test filling a bit the scrollback and look at memory consumptino
    • consumption after 2nd run in tmux
term speed tmux mem1 mem2 mem3
xterm 18.856s 2.794 12372 21616 22056
xfce4-terminal 5.180 2.790 36300 45784 45628
alacritty 2.604 3.022 65164 66620 66952
termite 5.310 2.845 29860 39740 39740
terminator 5.136 2.787 54080 64716 64964
xst 2.824 2.987 16932 17776 17776
aterm¹ 11.470 2.959 5144 5156 5156
urxvt 2.676 3.057 17792 32152 32152
terminology 3.946 2.861 73316 116792 113268
cool-retro-term 4.479 2.919 130584 131660 131660

¹: I wasn't able to load the same font as in the other terms

Conclusion and current situation

So what can be said from here? Well first of all, it seems that speed isn't of the utmost importance as I'm going to be inside tmux almost all the time, and it seems like it's buffering does compensate for terminal slowness anyway. It apparently even slows down the fastest term a bit, but nothing to worry about.

In usage, the best feeling were in my good old urxvt, alacritty and terminology.

I did really love terminology, the small cursor animations makes it feel like it is way smoother than the others, I know that's likely just an impression, but it did feel great to type in it. I felt like switching to it until I encountered issue with some of the binding I use daily, mostly some alt-something that are the basics of my irssi window switching. I had no clue why, or where to look for solution, there apparently isn't any overlap with the binds in the configuration.

Beside that its only drawback is memory consumption, but it has an option to use a single process which may actually make it pretty even with other terminals in my daily use case, as I generally run at least 3 terms at any time.

So currently, I'm still sticking to urxvt, maybe if at some point in the future I find a way to fix my bindings issues in terminology I'll switch to it.