How I Ended Up Embracing the Unix Philosophy on my Desktop

This is not going to be one of those happy posts. You know the type. Someone used Windows and had no idea there was anything else out there. Then they installed Ubuntu but it was bloated and someone showed them i3 and now they have found the One True Light of Productivity.

I mean it ends up somewhat like that but it's not a happy ending. If anything, it's a cautionary tale.

The First Age of Unix Purism

I first flirted with the world of Unix philosophy purism about seven years ago. It was during that weird age of Linux on the desktop between 2011 and 2015, when we went from "everything works out of the box except for cheap wifi adapters" to "nothing works, including cheap wifi adapters (and especially not sound)" to "okay it's sort of back under control".

It didn't stick. I went all in for about two years -- my window manager was ratpoison, I read mail with mutt (a fun trip down the memory lane if I come to think of it...). My shell was mksh, I used plan9port, I (mostly) dropped GNU Emacs for mg and my planning tool was calcurse. Of all these, I have to say, ratpoison was the best. I tried wmii, i3, dwm -- all of which, I thought, were way smarter than I wanted them to be. I'm dumb but stubborn and instead of "adjusting my workflow" (I'll have a workspace for chat and mail and a workspace for general web browsing and a workspace for work and if I need a chat window in my work workspace I'll tag OH i3 doesn't have that no I'll just switch to that workplace and move it to my work workspace and well fuck now it's all jumbled up...) I yell at things. ratpoison didn't get yelled at.

But it didn't stick because Ratpoison made me look cool but we weren't exactly best friends. Various applications broke when exposed to it (or i3, wmii, awesome, dwm...). Creatively chaining grep, awk, pray and sed just to emulate a lousy switch in bloated, glutonous GNU coreutils was fun at first but quickly became tiresome.

Plus, look, I'm weak and superficial and much attracted to shiny things. I like icons. I like buttons. I like embarrasingly skeumomorphic interfaces. I liked the Amiga and I liked Aqua-era OS X. Back in 2001 my favourite MP3 player was Sonique because that thing had style.

Wrestling in the mud with a pig

I distinctly remember my first attempt at patching something in KDE. I remember it because compiling KDE 3.1 from source wasn't exactly easy but I did it.

The CVS tree I had checked out was obviously broken, the way development trees usually are. This one had a silly bug with icon positioning -- the space between icons was huge. It was the winter of 2003, I had a lousy 17" CRT and a desktop chock-full of icons so naturally, they didn't fit.

Guess what problem KDE just got around to (sort of) solving in 2019.

No no, it's not the same bug. It's not one of those cases involving a bug that sat in the bug tracker for 18 years. It's a new bug. It's not a regression. The piece of software I encountered the bug in isn't there anymore. It's been rewritten at least twice since then. It's not the old bug -- it's new software, with its new share of bugs. Of course, it has fewer fixes for now (so it's basically worse software).

And not that it's an excuse for being an asshole, but I say that with all my love and sympathy because I love KDE. It was the first thing I used after I found out what fvwm is and that there are other programs that can help you manage a bunch of xterm and xbill windows (a long time ago, fvwm used to be the default environment on Red Hat Linux). My first patch never made it upstream but others did. It's my favourite piece of software that I no longer use.

KDE had a working desktop icon view in 2003. I know it because I was there. The bug I saw was an exception. Here is actual proof of it:

KDE 3.1 screenshot

Hell it had a working desktop icon view in 2000. That's gonna be 20 years ago soon.

The "modern" desktop icon view does exactly the same things as the old one. It doesn't support anything that wasn't supported in 2003 (maybe thumbnails? I don't remember anymore THAT'S HOW LONG IT'S BEEN!).

I'm a very shut up and hack kind of person myself and I'm normally the first one to point out that if you don't like something, what you want to do is send a patch, not whine. But hear me out for a minute.

Suppose I take a few evenings to figure out how to fix something instead of spending it with the wife. Now obviously I'm not looking for guarantees, but is it at least plausible that if I trade an evening of tequila and sex for sane icon spacing, I won't be fixing exactly the same damn thing three years from now in Plasma 6?

And I don't mean because of a regression -- no, regressions are okay, they're a fact of life. If someone is going to improve this -- dunno, they're going to add augmented reality widgets and icons are gonna get real-time, animated alerts or something -- ok, something that worked before might break. We're not building spaceships, it happens. I'll gladly trade tequila and sex to fix that again, so that everyone can enjoy sane spacing and AR goodness.

No I mean will I not be fixing exactly the same problem because the piece of software that paints icons on the desktop has been rewritten yet again, and replaced with one that offers exactly the same functionality, but none of the bugfixes?

Well deep in our hearts we know it's no longer plausible, no.

Three years from now someone the Visual Design Group will think that the current situation is just too messy, the code is too baroque and too 2019 and the only way to fix it is to start from scratch. And someone will, once again, fix aligning icons on the desktop -- not because the old code broke somehow, but because it was removed and replaced with one that's worse, and it has to be made better again.

Well how about no. I'm not going to fix a problem just so that someone can have fun replacing that code with a piece of "early prototype but it's a good start we can always polish it later" that does exactly the same things, except not as well because, well, it needs a bunch of bugfixes. I'll stick to tequila and sex thank you.

This has been the story of almost every project in the Linux desktop space for the last few years. Gnome is like that, too. Gnome is great today (the design choices aren't my cup of tea but it's a solid piece of software). But previous experience has taught me that there's a 50-50 chance that three years from now Gnome is gonna be really bad for a few years.

That's been the story of using almost every project in the Linux desktop space for the last few years. Version N comes out, full of UX innuvashun and bugs brought by attempting to fix problems no one had in the first place, like "my icons are too close together".

(Please shut up about touch screens already. Go ahead, try to gather 20 Linux users who have touch-enabled laptops and see if they really can't hit 64x64 icons placed 4 pixels apart. Actually, go ahead, try to find 20 Linux users who have touch-enabled laptops and can use their touch screens).

Right, version N. So I mumble, work around these things, maybe submit a patch. Everything works for a few weeks, just in time for version N + 1.

Where six of the twenty or so modules have been rewritten and they're still a little rough around the edges but it looks so clean it almost makes macOS look bad next to it.

Mischievous smile

Now we just have to wait for all those pesky macOS users to say well I know this doesn't run Photoshop so it's not like I can do my work on this thing but OH MY GOD THIS LOOKS SO POLISHED I WANT TWO OF THEM NO I WANT THREE!!!!!1

It's basically like wrestling in the mud with a pig. Five years later you're no closer to winning, but it turns out the pig actually likes it, too.

The Second Age of Unix Purism

So now my desktop runs cwm, tint2, urxvt and a bunch of other things.

I hate it. It's the worst, least functional and ugliest desktop I've ever used. I swear that if Macbooks today were half as well-built as my old Powerbook I'd grab one without thinking twice. Hell, I swear that if WSL weren't the dumpster fire it is, I'd switch to Windows.

So why do I put up with it? Well, because I know at least it won't get worse.

They're completely unglamorous projects. They're useless for resume padding. They used pretty antiquated technology. They don't have fancy features, so there's not much to improve or re-implement.

Future releases might have bugs, but the code -- written by people like you and me, who have maybe a few evenings to spare every week -- is small enough that volunteers working in their spare time can comprehend it and fix it.

The only good thing in this desktop is mutt, really, because I'm subscribed to way too many lists for Thunderbird to not choke on them. And I get it, look, Thunderbird is fucking amazing, unless you're subscribed to 50 mailing lists, which you shouldn't be if you value your sanity, you want to use it.

(Oh yeah: Thunderbird isn't doing great in terms of infrastructure and money so if you can spare the money, please consider donating!)

I didn't "see the light". "The light" is a bloody disgrace, a desktop I cobbled out of disparate parts, that looks like the GEM desktop -- all flat and colourless -- except it's high-resolution and it has anti-aliasing. Feature-wise, it's on-par with my first computer, which ran Windows 3.1. Thank God I got m4d 5he11 scr1pt1ng sk1llz -- if all I had to rely on were my graphical programs I'd be better off with pen and paper. And hey, Windows 3.1 was the result of many years of evolution, don't be too harsh on it. People who use tiling WMs are literally partying like it's 1985.

That's the best one say about these things -- and, I guess, about the Linux desktop in general: the least-capable tools aren't too good, but hey, at least they won't get any worse!