The last month or so has seen a lot of shake up in my tech stack. From switching to Alacritty to finally aligning my hotkeys across GNOME and macOS. I even ate crow and came back to Neovim after switching back to mainline Vim after a weird issue with my color scheme.
Speaking of weird issues, I’m here to tell you that newer isn’t always better. I tend to stick to the tried and true apps because they provide a higher level of stability. Sure, they may not be as feature rich as some new shiny app. Does that make them inherently worse? Probably not.
As part of my journey to re-evaluate my arsenal of tools, I decided to dabble with terminal multiplexers. Tmux is my terminal multiplexer du jour, and has been for a while now.
I started with tmux, then realized I was too reliant on Tmuxinator. I rewound history a bit and I switched to GNU Screen. After getting my bearings with GNU Screen, I decided to give tmux another shot, without Tmuxinator, and haven’t looked back.
While there’s nothing wrong with Tmuxinator, the way I work just doesn’t warrant having advanced layouts like that. I spin up a new session, I launcher docker in the first tab, and then I start to hack in the second tab. I’m a simple man with simple needs.
From tmux to zellij
Of all of the terminal multiplexers out there, zellij seemed like one of the best options to dabble. I liked that it was friendly to new users by guiding you though the hotkeys. I dragged my feet a bit, but when the 0.40 release dropped, it seemed like a good time to switch.
With zellij installed, I started to get to work the way I always do. Start a new session, fire up docker, start hacking in a new tab. Things were actually pretty smooth after a small bit of configuration to get colors right. I also turned off the excessive borders briefly.
Configuration comparison
Zellij generates a configuration for you after first launch. I opted for the locked version, as I’m a Vim/Neovim user, and wanted to avoid any conflicts.
The configuration that zellij generates is massive, weighing in at around 14K. Not a complete deal breaker, but I didn’t want to stash so much config in my dotfiles. Unfortunately, zellij doesn’t have a way to side load a small bit of configuration, it’s a mono config, if you will.
I can appreciate the level of customization that zellij provides, but I’d much rather sane defaults that I can override than a massive configuration file. Fun fact, these days I run tmux with zero config. Some may think I’m a maniac, but out of the box, I can be highly productive with tmux.
Maybe it’s on the zellij roadmap already. Real talk, the road map is a damned image, and I wasn’t going to spend any time trying to decipher this. Text is king, and taking away the ability to search the roadmap is no bueno to me.
If it ain’t buggy, is it even new?
New projects have bugs, it’s a fact of life. While I won’t hold that against a project maintainer, I will refuse to use software that hinders my own productivity.
After using zellij for a bit, I ended up rebooting and needing to resurrect a session. Awesome feature, seemed to work fairly well, I was stoked. That was, until I noticed that when I tried to open a new pane with ALT+n
the pane would open to the left and not the right, as it did before the resurrection.
I did some digging, and this was in fact a bug.
What was really eye opening was the volume of bugs that I found while trying to track down this issue. At the time of this writing, there are 958 open issues with 1059 closed.
I ran some back of the napkin math comparing the tmux issues to zellij, but that’s not a fair assessment. With tmux being 17 years old, it slightly predates Github, so there may be some issues that were lost from whatever platform they may have been hosted on previously.
That said, if you like numbers, zellij has averaged ~500 issues per year. Tmux has averaged less than half of that with ~200 issues per year.
Can’t teach an old dog new tricks
When you get to a certain age, you definitely start to fall into the “old dog, new tricks” category. The oft negated side of things is that it’s not always about teaching and learning, but about standards and opinions.
I was sufficiently productive in zellij. I probably have enough muscle memory after a few weeks to jump back in sometime next year and pick up where I left off. Solid I chance I will too, since there was some stuff I really liked about zellij, that I’m probably going to try to get working in tmux at some point.
As mentioned, productivity software is supposed to do just that, make you more productive. Not all bugs hinder productivity, but some of them, as minor as they may seem, can absolutely be deal breakers.
Older apps and tech tend to be more stable. Not because they are inherently better, but because most of the kinks were worked out early on. I also feel like older software tends to embrace the UNIX Philosophy of doing one thing, and doing it well. A lot of newer software is just drowning in being feature rich, often times sacrificing quality over quantity.