Many years ago I set myself a challenge. I was in the midst of a platform switch from my Mac that I had been using for the better part of a decade. Instead of going back to Windows, which seemed the default choice, I decided it was time to try the move to Linux. After all it was 2014 and it was the year of the Linux desktop (again.) So I set myself the goal of using nothing but Linux for my main daily driver for the next three months.
After some looking around I had a shiny new setup running Debian 6 with KDE on top. I’d been using Debian for my servers and VMs so it was familiar, and generally liked the look and feel of KDE over Gnome.
Very quickly I ran into challenges making things work seamlessly. Applications would install but require workarounds. User interfaces were unsophisticated and jarring, often giving the impression of software that had been written years (or decades) prior. Hardware support was mostly fine, but multimedia drivers and codecs had to be found and installed separately once you realised that was the problem.
And the photo management and editing options were… fine. Not great. And as someone who was coming over from Lightroom for managing and doing post-processing of photos the best option I’d found was Darktable, but that project was in its relatively early days still.
All in all, after three weeks I’d thrown in the towel. I spent far too much time ‘managing’ my computer, and nowhere near enough time using it for its intended purpose. I was willing to concede the point that you can do pretty much everything on Linux that you can on Windows or MacOS. But at that point, Linux was still an enthusiast effort on the desktop side of things. Servers were bulletproof and rock solid, and had been for years. But as a consumer desktop OS it left much to be desired.
Fast forward 10 years
As my general frustrations and annoyances with Windows 11 grew I began to ponder the question again — could I feasibly make a go of things on Linux? I was still very interested in making this work, but had similar requirements to last time. I needed a computer I could use, not one I was going to have to manage as a new part-time job.
So this time I did a bit more research beforehand (though possibly not enough, as you’ll see…)
The first thing I wanted to know was how people who knew that stuff better than me were doing when it came to their Linux machines. Not wanting to brave the wilds of the /r/linux subreddit, I turned to the friendly and familiar denizens of the Knightwise.com Discord.
What I wanted to know was pretty straightforward. In this group of self-confessed geeks who enjoy using technology, but also often enjoy technology for its own sake, who was using Linux as their “daily driver” operating system. I was pretty sure there would be someone, and before long I got my answer. There was indeed a subset of the Discord who do use Linux all the time not just as a server OS but as their main computing interface. Good to know — this wasn’t going to be a crazy idea in 2024.
State of the Apps
The next thing I needed to understand was the state of the application ecosystem. In the past decade there have been a ton of advances in applications taking advantage of web technologies to create desktop applications. Tools like React Native allow developers to port the skills they have from building web applications back to the desktop. This is great for reusing code, and keeping things consistent across different devices, but it also comes with another built-in benefit. It makes cross-platform development much easier.
Another application framework that also came into its own around the same time was Electron. This framework was originally part of the Atom text editor (which sadly saw its final release in 2022) and was eventually separated from its fully featured predecessor to become the ‘Atom Shell’ framework, and ultimately the Electron project. This undoubtedly deserves a full post on its own, but suffice to say that the ability to create an application once and run it on multiple platforms with little-to-no reconfiguration was a big draw for developers and has gone a long way to helping to build out the ecosystem of cross platform applications both open- and closed-source.
I knew that I had some key parts of my workflow that relied on Electron apps, namely Visual Studio Code, the cross-platform IDE from Microsoft that is built on Electron. I didn’t realise how many more apps I used that were based on this. Let’s see if you recognise any of these names:
The list is long.
Do or do not. There is no try.
At this point there was no reason not to give this a shot. Deep down though I was still a bit sceptical, and I knew that uncertainty would rear its ugly head if things started to get a bit dicey. I needed to commit to this little experiment, and that meant making the switch back to Windows a bit painful and difficult in and of itself. That meant there was really only one option: nuke and pave. No dual booting. No secondary OS. No ‘sacrificial’ PC. I was either in, or I was out.
So I downloaded Kubuntu, wrote it do a flash drive with balenaEtcher, hunted down my USB-C adapter and took the plunge. There was a real sense of apprehension when I chose the option to wipe the entire hard drive of this (admittedly troubled) Dell XPS 15. My entire computing life, backups notwithstanding, was on that hard drive. But it was done, and it was done for the best (I hope). My main laptop was now running a Linux desktop.
There’s a lot more to tell in this tale. I have started to have some interesting adventures. But I write this 8 days since that initial ‘nuke and pave’. I’m writing in Obsidian, on Kubuntu 23.10, and am really more or less happy with the choice so far.
Is this the year of the Linux Desktop? For me, it certainly looks that way. The way made clear by continued persistence of its devoted fans and a text-editor turned application framework that brought the web developers to the Linux desktop too.
