Linux on the Desktop, Part Six: Final Thoughts

Bottom Line; Up Front

After 10 years away, Linux feels like home again.

Returning After 10 Years

It should come as no suprise that the Linux Desktop changed a lot in the last 10 years. When I left, distributions were debating whether to adopt systemd[1] as a SysVinit[2] replacement and pulseaudio[3] was still rough around the edges yet being adopted as the default sound server. Gaming on Linux was difficult and required a lot of manual effort. It rarely “just worked.” Gnome alienated many users with the major redesign with the 3.x release of its desktop environment.

Today systemd is the default init system for most mainstream distributions and pipewire[4] is replacing pulseaudio. Gaming matured to a level where less fiddling is necessary to get started, although current titles still suffer the same setbacks as 10 years ago. For the most part, gaming “just works” for older titles, especially those in my library. Gnome is a lot better. In 10 years it improved enough that I don’t feel the need to evaluate other desktop environments.

Ease of Installation

Installing Linux was never that difficult, except when I was brand new to the OS. Today’s mainstream distributions default to some sort of GUI installer, usually accessed through a live USB or CD. It’s easy to click through the defaults and quickly get up and running. The only caveat is the new, streamlined installers make me lazy. My skills have dulled some in the last 10 years and if I want to step outside the defaults; disk partitioning for example, I have to go back and re-read the documentation to refresh my memory. This isn’t a fault of Linux, it’s simply a function of time and lack of exposure.

Ease of Use

I do think Linux is easier to use today than it was 10 years ago. It seems like desktop environments and applications received a lot of polish over the years. I still did about the same amount of tweaking to make the out-of-the-box experience more to my liking, but I felt like it required less effort. I didn’t have to install extra fonts and themes to get a polished look and feel and I didn’t spend any time outside of Gnome Settings or Gnome Tweaks during my first pass. I ditched Gnome when 3.0 was released because it was such a depature from 2.x and it felt incomplete. Today, it’s a really good experience, and adding a few extensions makes it even better.

Software

Selection and Access

The last distribution I used before switching to Mac was Arch. I never had a problem finding and installing the software I wanted to use. If pacman[5] didn’t have it, then the AUR[6] did. Prior to that I had similar experiences with Gentoo, although sometimes there wasn’t an ebuild[7] and I either wrote my own or did a source compile to /usr/local. Mandrake was a different story. I often added third party RPM repositories along with source compiles to meet my software needs. That’s all changed in the last decade.

Today finding and installing software on Linux is easy, but more complicated. How can it be easier and complicated at the same time? It comes down to the channel through which the software is installed. Ten years ago I used the system package manager and the occassional source compile. Today I have the system package manager, Flatpaks, AppImages, Snaps, source compiles, and there is even a port of Homebrew for Linux. Using any combinations of these channels together is easy. What makes it complex is deciding what to get from where, and how to keep track of everything. For the most part I use my system package manager apt[8], configured with several third party repositories, flatpak[9], and a handful of AppImages. That covers 99% of my needs. The remaining 1% come from .debs[10] downloaded from the developer repo in GitHub[11] and a couple “shell archives” for software like the AWS CLI that isn’t distributed with native packages. I’ve avoided source compiles this time around and, so far, I haven’t gone without.

Quality

Software quality isn’t a function of platform. There is buggy, poorly designed software for every operating system and that is something that generally improves with time.

Problems

I’ve encountered surprisingly few software-related problems that weren’t of my own creation. The most recent is a bug[12] I ran up against is in the Audacity flatpak where horizontal scrolling causes it to crash. The AppImage doesn’t seem to have this problem, so I switched for the time being.

Another bug that I almost forgot about, but is fixed in newer versions of Rhythmbox[13], is crashing when plugging in a newer Apple device. The crash is caused by a depedency, libimobiledevice[14], not supporting the UDID format of my phone and iPad. This has since been fixed upstream, but the version in my package repositories is still the older version with the bug, and I haven’t sat down to figure out if I can make it work with the flatpak verison.

Both bugs are relatively mild and they don’t interfere with my workflow. Thinking back to years prior, I don’t recall having problems with bugs. My problems were mostly related to missing or incomplete features. That said, in terms of software quality, my return has been mostly free of friction and everything feels more polished overall.

Gaming

Linux was never intended to be a gaming platform, but that didn’t stop people from trying. The biggest reason I dropped Linux on the desktop for Mac was, perhaps ironically, gaming. I was tired of dealing with wine. It was fine when it worked, but a library update or two were enough to throw it in a tail spin and I’d lose a day or two troubleshooting. The final straw for me was wine’s lack of support for PulseAudio. I had it working for a time, but eventually buffering became a major problem. I would have to restart the game two or three times before the audio crackling would stop, then one day that didn’t work and I gave up.

Today the gaming experience is a polar opposite. Software like Lutris[15] and wine improvements upstreamed from Steam’s Proton[16] make it a much better experience. Installing games is easier, and I don’t have to use as many workarounds. Today I have 30 games installed, and if I want to play one I simply choose it from the Lutris launcher and I’m off. I’ve had a few small problems here and there, mostly related to games crashing after launch, and those were easily fixed. Most of the games I play are old, so performance isn’t a concern, and my hardware is well-supported. There is still controversy surrounding the proprietary nVidia drivers in the community, but I haven’t had problems myself. I don’t know if that means everything is working as intended, or I just don’t notice problems that others do. I’ve never been a gaming enthusiast, so it could also be that Linux is well-suited to my casual approach to gaming.

Gnome

I’ll wrap up this section with a few more words about Gnome. When I left over 10 years ago, I hated where Gnome was going. Today I’ve completely changed my stance. I know part of it has to do with being accustomed to the Mac interface, which hasn’t changed much since the first release of OS X over 20 years ago. I also like the simplicity. KDE has far more options to tweak, but I’ve never been able to stay in the ecosystem, even though I started out with KDE 1.4 many years ago. My only concern with Gnome is they will some day decide to drop support for the addons I’ve installed, forcing me to either readjust to the “Gnome way” of doing things or seek out alternatives. Otherwise, it gives me what I need in a desktop environment and stays out of my way.

The Community

I don’t interact with the Linux community much these days. I might reply to a post on Reddit from time to time, but I don’t spend my evenings trying to help people on IRC or forums anymore. I still see elitists and trolls, but they seem to be more marginalized than they were years ago. The willingness to help others has grown stronger, but make sure you have all of your information together when asking a question. The community still frowns upon people who ask questions without making an effort to answer it themselves first.

If I were to complain about the Linux community, it wouldn’t be about the elitists or trolls. Those types are not unique to Linux. They’re a general pain in the ass, but not unique. My (mostly) quiet complaint is about the posts by, usually new, enthusiasts announcing the famed “Year of the Linux Desktop.” To be fair, I was guilty of making the same proclamations years ago before I finally came to my senses. I think it was around the time I started using Gentoo and realized that the delta between Linux and Windows was too wide for most people to cross. I still feel that way today, although the delta isn’t nearly as wide. People use computers differently today, too; but I digress. It’s great to see the enthusiasm grow every year, but the year of the Linux desktop has become worse than a meme, and I often catch myself rolling my eyes when I see a headline with those words. I suppose that means I’ve become elitist, and to a degree that is true.

Security

The Linux security model is dated, to say the least. A plethora of blog posts and articles exist criticizing the Linux security, or the lack thereof. They’re not wrong. Microsoft and Apple have put forth a great deal of effort in defensive security areas like application sandboxing, exploit mitigation, and kernel hardening to make their operating systems less vulnerable to modern day attacks. Linux progresses more slowly, mainly due to the development model. Users play a big part in security, too. I think the average Linux user is more security-aware than the masses using Windows or macOS and I think that makes them less likely to fall for the tricks used by attackers to exploit and abuse systems. That doesn’t mean there isn’t room for improvement. There certainly is, but I don’t think developers feel the same urgency, so it isn’t pursued the same way it is on commercial platforms.

I do take issue with the tone of some blog posts and articles criticizing Linux security. I place them in two buckets: all complaints and hindsight bias. Articles that point out the flaws, but do little or nothing to suggest corrections, really annoy me. Even moreso if citations are sparse or absent. That makes them little more than opinion, much like this post I’m writing here. To make an analogy, it’s like someone pointing out a house is on fire and standing there expecting someone else to figure out what todo. Usually these types of posts make valid points, but I would like to see a little more effort citing sources so people like me can run down the rabbit holes to get more context.

Articles with perceived hindsight bias are even more annoying. The author isn’t necessarily biased, but their tone makes one think that those who came before them were somehow less capable because they didn’t know these problems existed. The security history of sendmail[17] and bind[18] are cautionary tales of what happens when security isn’t part of the original design process, but both of those daemons were written in a day when network security was an afterthought at best, and there were few hosts connected to what is now the Internet. That doesn’t mean they’re flawed or insecure, or there aren’t better tools, it means since they were the first on the scene, they’ve gone through the most teething pains. Again, it doesn’t make the points in the articles less valid. I simply find it distracting when I have to actively push the tone aside to focus on the post content.

By the way, I refuse to name and shame, even in a rant like this. That helps nobody. I could write the authors privately, but I don’t want to start a pedantic debate. It wastes their time and mine. Instead, while I may vent, I try to exercise critical thinking to get at the real point of the article. While their tone is distracting, I find the information interesting and useful.

Looking Ahead

I have no idea what the next 10 years will bring for Linux other than steady change. It will be too slow for some, and too fast for others, but that’s about all I will predict. We’ll see wider adoption of Wayland as a replacement for X11, and possibly more open sourcing of the nVida graphics drivers, along with general improvements to Gnome, KDE, and the kernel. I won’t predict a “year of the Linux desktop” because I stopped caring about it, and I don’t think it’s anything realistic unless there is a major paradigm shift from PC manufacturers. One thing I will predict is my continuing use of Linux for years to come. Apple succeeded in fully alienating me from their platform, I do not trust Microsoft, no matter how much they cozy up to the open source community, and Linux just feels like home. If suddenly I start to have problems with my games not running well, or at all, then I’ll look at my options when it happens, or simply quit playing that game. Until then, I’m staying put, because despite my earlier misgivings, Linux has proven itself to me time and time again.

Wrapping Up

I started this series of posts 10 months ago, not long after I bought my new laptop. My intent was to share a couple anecdotes about why I left desktop Linux, and why I decided to try it again. After some brainstorming, I realized I had too many ideas for two posts so I expanded, eventually to eight posts that I later trimmed down to six. I’ve had a lot of fun outlining and researching my posts. I didn’t hit the cadence I hoped for, but I managed to weave in a few other ideas amongst the Linux on the Desktop series. I have a few ideas outlined for next year, but I’m not sure what 2023 will bring.

  1. systemd
  2. SysVinit
  3. pulseaudio
  4. pacman
  5. AUR
  6. ebuild
  7. apt
  8. flatpak
  9. .debs
  10. GitHub
  11. Crash when scrolling spectrogram partially off-screen #2930
  12. Rhythmbox
  13. libimobiledevice
  14. Lutris
  15. Proton
  16. sendmail
  17. bind