Going “hardcore ultra-minimal” like others do might not suit you. And that’s a good thing.
Well, the title might seem a bit too generic, but bare with me because I’ll try to make things clear.
A bit of history
I have been using Linux for quite a long time. I first touched it during highschool and ended up learning how to dual boot my PC with Windows 2000 & Red Hat Linux 5 (not RHEL, but the old distro). I was hooked and amazed, even though at the time kernel 2.2.x was still the one who ruled the Linux kingdom and 2.4.x was being developed (boy, was I a happy kid when I succeded in compiling a 2.4.1 kernel that supported my audio card!). It fascinated me since day one. Years went by and I began studying and playing with other distributions and also FreeBSD. In 2005 I managed to land my first job as a Junior QA Engineer. It was the result of quite a few months and years of sleepless summer nights in which I sat at my PC and devoured man pages & how-tos for BASH, Perl and Linux in general (and playing Diablo 2, Warcraft 2, Heroes of Might And Magic 3 & Counterstrike on my LAN).
My first week at the new job was allocated for an initation ritual in order to become a full member of the QA team. I arrived at my desk only to be presented with a Pentium 4 HT-based workstation (an expensive toy back then) and a Knoppix Live CD on the keyboard. The PC was blank, with no operating system installed beforehand. I was given a small introduction by one of my colleagues and there I went. Over the next five days, I was supposed to use my Knoppix Live CD to connect to the Gentoo website and read the manual & all the installation instructions. I was to build my system bit by bit and end up with a functional workstation with everything needed: email client, web browser, development & testing tools, etc. Boy, did I love that! THAT was a crash course! I’m still nostalgic about those days. Don’t get me wrong, my colleagues were very fun & kind folks and I got the support needed whenever I managed to get stuck and no manual or Google search would help. But that really was a learning experience.
I’ve told you this story only because I love reliving it, but there is a small link to the present day.
The “Ricing virus”
For the past 3 years, I’ve been posessed by the obsession of finding the perfect minimalist Linux distribution & the ideal setup. Of course, things are wildly different in 2020 compared to 2005 (Heck! 15 years passed already?!) and my needs have changed. Around 2017 I’ve made some changes in my personal life and work habbits (greatly influenced by the writings of Cal Newport on “deep work”). Minimal window managers looked very appealing and I went through i3 & dwm, the later being used for more than one year. I even made a script to build a custom Ubuntu 18.04-based distribution, focused on a minimal set of packages and almost all suckless.org utilities.
I was deep into being a “hardcore xterm-only power user”, because it felt liberating and looked cool. And I still find it really cool to work in the CLI (as I pretty much do my job, most of the time). After spending countless hours tinkering with dwm, st and many others, I’ve reached a comfortable working environment. Then more real work had to be done and I found that, despite me being more “hardcore”, some tasks just took longer and, somehow, the window manager & all the related tools got in my way most of the time. Trust me, I was instinctively using my own keybindings everywhere I went, so I wasn’t quite the average n00b.
After a while, I began noticing a lot of channels focusing or “ricing” sprouted throughout YouTube. Some of them are quite nice to watch (see Luke Smith’s channel, for example, which is both interesting and hilarious at times - even though it is a good technical resource, nonetheless), but it looks way too similar to other fads that come and go. Maybe this whole Covid-19 pandemic amplified all that, just as you could suddently find loads of dudes doing experimental electronic music at home once lockdowns were imposed (myself included). Fads have the tendency of generating mass sheep-like movements. But what I find most interesting is that not one of those guys on YouTube (and not only, but I’m just using YouTube as a casual reference) ever made a clear video or wrote an article or blog post about how all their “ricing” efforts improved their workflows. It just seems that most of them are into ricing just for the fun of it (see the DistroTube channel), which is totally fine considering it probably became a hobby for most of them.
But people working in systems administration & DevOps would tell you that by just ignoring various popular technologies only because they do not adhere to a certain extremist philosophy is a big loss, because you’ll encounter those at the workplace. When you’re dealing with a faulty server that hosts OpenLDAP and some databases for a production environment, you can’t reply by saying “I’m not touching that because it’s based on Debian and it uses systemd/initd/whateverd, therefore it sucks! Use Devuan or Arch, you idiots!”. Frankly, you might make a valid strong case by suggesting a switch to Free/OpenBSD for those kind of tasks, but that’s a different matter.
Anyway, after purchasing a new laptop and experiencing some sort of an inner dialectical dispute, I’ve done a bit of “distro hopping”. And, suddently, I felt nothing.
An epiphany (or some word like that)
Something was off and I was not getting any satisfaction in tinkering with tools. I realised I had become obsessed with the tools and ignoring things that would make me better. Of course, all this tinkering did teach me a lot of stuff and I am greatful for having the opportunity to learn all that. But gaining that knowledge proves nothing more than an interesting mental exercise.
“Ricing” did not make me a substantially better software tester, nor did it really increase my embedded programming or networking knowledge. The applications are quite limited. But, more than anything, I did not really feel like being more productive or having more spare time. I wasn’t happier and I was experiencing weird feelings of guilt when my eyes would catch on a “normal/regular” user interface (“You are NOT allowed to indulge in that, you moron! What are you, a normie?!”). I followed that train of thought going deep inside some of my structural assumptions built over the past couple of years, only to end up shattering them to pieces. Indeed, using “protest distros” like Void, Devuan, Arch/Artix, Parabola, Guix (yes, I briefly went through that, too) and other similar ones along with “CLI-only” niche tools, did not make me more efficient or happy.
On the contrary, I was not able to properly run some tools I do care about, mostly due to them being incompatible with the way these niche distributions where structured or because of missing drivers for my laptop’s hardware (especially the “Linux libre” ones). Stallman and his acolytes would now point their fingers at me yelling “You’ve opted for convenience instead of freedom!!!!”. You know what? I do care about software freedom. A lot. But that doesn’t mean we have to be extremely absurd about everything around us. It does not mean that I need to buy a laptop built in 2013 just to be able to successfully run “Linux libre” stuff on it and wait for hours on end until a small, trivial YOCTO build is done. Or not being able to use Code Composer Studio for learning embedded C progamming using TI Launchpad boards.
But my thoughts on FSF & Richard Stallman extremism are subject for a different post.
Anyway, Linux aside, FreeBSD is very close to my heart for a lot of reasons. The only thing keeping me from using it as my daily driver is lack of hardware support for more modern WiFi cards and, most annoyingly, the way OSS (Open Sound System) hates the sound card on my laptop. I just can’t get it to work properly in a Chrome-based Microsoft Teams meeting (yes, I too hate Teams, but one has to eat and pay bills and for that one needs to work together with other people) and using an external USB sound card with one of the microphones I abuse during music/sound-related experiments is really not practical. It’s just more cable mess instead of using hardware that’s already present in my laptop.
So, I remain faithful to FreeBSD when it comes to my lab and servers (along with NetBSD). That’s a different story, a totally different use case with quite different goals. For now, I’ll stick to Linux on my laptop. I also use this for lightweight photo editing “on the go” and it runs great. As for the distro I’ve been sticking with, it’s openSuSE. I wrote about this briefly once before. It just works. Yes, I do use KDE Plasma and I love it. YaST is one great tool and the main thing I truly appreciate about SuSE is their ability to properly build a system, not just a kernel with a collection of binaries thrown together.
systemdis quite a pain in the butt, but it’s being used on a large scale in quite various environments so it’s useful to know how it works and get that under your belt, especially if you work in IT (since you’ll encounter a variety of systems & configurations along the way); it’s also a very useful tool for server environments, where stuff fails and devices are hot-swapped, and having a mechanism like systemd allows for things to automatically get back to normal in a production environment; and I also think that mass virtualization & container use would not be feasible without something like systemd
- Linux is not perfect, but no OS is perfect. Finding the right distribution that suits you and your needs alone is the way to go. Forget everything else and stop feeling bad for your own tastes & ways of working
- FreeBSD is the role model all operating systems should follow, but I know right now that’s pretty much impossible (it is doable, of course, but it might not happen very soon)
- Using a full-fledged Desktop Environment does not make you stupid. At all. It’s just a matter of preference rather than a disability.
- You can be unproductive on a “true hardcore minimalist RICE setup” as well. Who’s stopping you from wasting your time & life online, on Facebook, “YouTube rabbit holes” or porn? Being distracted is a personal issue, not a technical one.
- Being competent at using shell-only tools (xterm, screen, tmux, byobu, vi, vim, sysctl, gdb, iptables, ‘ip’, etc.) is a must if you’re going to work for real with UNIX/Linux systems. No doubt about that. No news there.
- Konsole is so good that Gnome folks tried to replicate it and named it “Terminator”. Yes, it is cool and useful. And fast. Gets the job done properly, expecially when dealing with multiple stack traces on remote systems.
- Comparing one’s PC usage patterns to other people’s is not really the best thing to do. It’s useful as long as it’s informative and you’re trying to learn something new from someone els