A terminal feature I never knew I wanted
For a very long time, maybe close to eight years, I've used terminator as my terminal emulator. Based on gnome-terminal but offering features like split panes and more, it was easy to use, looked and worked well, and was widely available. The pane splitting was really a driver for my workflow, I came to (and still do) rely on it to be productive.
Very recently, in a lobste.rs comment thread about Linux terminals someone mentioned alacritty. I was not at all in the market for a new terminal, but GPU-accelerated sounded interesting (more on that later) and Void has a package so I figured what the hay. My initial impression was that alacritty's lack of features was its biggest feature, but then I fired up
Alacritty doesn't do much, the question of scrolling (or the lack thereof) is even covered in the FAQ. This was something I noticed right away for sure, but it didn't scare me off. I knew that could be delegated to GNU screen (albeit via using it in ways I'm not super accustomed to) or tmux (which I had never really used before.) As usual, the lack of features is in my opinion a feature itself, and I've taken this opportunity to add tmux into my workflow. Perhaps more on that in another post..
But back to the potential of a GPU-accelerated, terminal-based music visualizer! Well, suffice it to say it kicks ass. Go ahead and download alacritty for yourself, get the cli asciinema player, and check out my video of the visualizer in action. So now I have a new terminal that I didn't ask for (that I really enjoy) and a new workflow based on paning with tmux. Cool!
It hasn't been a 1:1 transition, but it was very close and what wasn't matched in terms of functionality was replaced with something I didn't have before. A few observations:
- Pane splitting via tmux. This isn't handled exactly the way terminator does it, for example if I do a double click the whoe line - across panes even - would be selected, whereas in terminator that pane border was more "solid" I guess.
- Tmux bindings that match what I use in Emacs - aside from the different prefix binding, I now split panes and navigate them with the same bindings that I use in Emacs. This is a huge win!
- I no longer find myself opening multiple terminal windows; Now what might go in another window just gets opened in another tmux session. This has worked out very well!
Although it is stated to be "alpha software", Alacritty already shows a lot of promise and is now a staple in my workflow.