Linux on the Desktop, Part One: Why I Left

Bottom Line; Up Front

This post is the story of why I left the Linux Desktop 10 years ago. I left because the need for my computers and software to just work outweighed the interest and fun involved with tinkering and troubleshooting.

In The Beginning

I’ve been a Linux user since 1999. I first installed Linux Mandrake on a second PC that dual booted with Windows 98. I remember being hooked almost immediately. A lot of it was foreign at first, but it was a whole new world to explore, and it was free! I didn’t fully understand the open source philosophy, nor did I care. I liked what was in front of me, and I was determined to master it. I bought books[1][2], spent hours scouring the Internet for HowTos and documentation[3], and broke my system more times than I can count. Eventually I came across a document titled “TrinityOS: A Guide to Configuring Your Linux Server for Performance, Security, and Manageability[4]”. I think I was up until 3:00 or 4:00AM carefully studying and implementing its recommendations. It was well-structured and easy to follow. I implemented an ipchains firewall, set up scripts to send daily log summaries, and learned the basics of system and network security. I used TrinityOS as a reference for several years and, although over 15 years since its last update, the site is still online today.

The ISP and Moving Away From Mandrake

In early 2001 I founded a small ISP built using Linux Mandrake. My business partner and I bought new laptops and replaced Windows with Mandrake. We built our first router and all of our servers using commodity PCs and Mandrake. Hardware support for Linux on laptops was pretty good even back then, but some effort had to be put forth patching kernels; I think support for power management was a challenge, but I digress. The whole business ran on top of Linux.

I was an avid user and advocate for Mandrake Linux as it came be to be known until some time in 2003. Due to legal and financial challenges[5], Mandrake the company made abrupt changes to how it released and supported its product line. Suddenly I had multiple servers with d eprecated operating systems that were fully supported the day before. It was unclear the direction the desktop version would take. I was quite unhappy to say the least. Thus began the search for a suitable replacement.

I evaluated many distributions. Redhat and SuSE were first up because they were rpm-based like Mandrake. I also looked at Debian and Slackware. At the time the rpm-based distros didn’t have package management software as nice as urpmi. Slackware was easy to install and mostly left you to your own devices but for I didn’t like its “feel”. I think I found it too primitive. That left Debian, which blew me away from my first login. The stable release of the distro was too old. Most of the packages were older than those installed on my Mandrake 8.0 servers and would be too much of a step backward. Testing was more up-to-date and felt stable. I found apt to be a breeze to use and found the project’s documentation well-organized and thorough. Debian Testing became the new operating system for my servers. What about the desktop?

Looking For A New Desktop (For A New Laptop)

I remember evaluating Redhat Linux 7 on the laptop. The look and feel was ok, but I felt it lacked a good package manager. Tools like up2date and yum were several years away and while I could hunt and peck my way to installing packages using rpm, I missed Mandrake’s urpmi and rpmdrake. I think I ended up settling on Debian Unstable for a while, but it never felt like home. I hadn’t heard of Ubuntu at that point (this was some time in 2004) but I had been reading about a new distro called Gentoo. It was a source-based distro that supposedly let you optimize every package for the hardware and was infinitely configurable. I decided to give it a try.

The Great Gentoo Experiment

Much to my surprise I installed Gentoo successfully on the first try. I credit the project’s excellent documentation. The mailing lists and IRC channels were also helpful and welcoming. I found a new home. I immersed myself in the process known as ricing[6], trying to extract every drop of performance out of my hardware. Somewhere along the way I came to my senses and settled on a conservative set of compiler flags and focused more on use flags[7]; keywords that tell the Gentoo build system what features to include when compiling software. For example, I’ve been a Gnome user for a long time, so I could include gtk and gnome while excluding kde and qt components. I liked the control this afforded which made me a loyal Gentoo user for many years; two laptops and two desktops if memory serves.

Move To A New City

In 2007, I relocated for a new job. While holed up in an extended stay hotel my truck was broken into and two of my (broken) laptops stolen. I was left with the old trusty Dell I used when I founded the ISP. When the time came to upgrade I purchased another Dell and this time it came with Linux (Ubuntu) pre-installed. I was mostly satisfied with the new laptop but there were certain things about the pre-installed Ubuntu I didn’t like, so I decided to re-install. It was at this point I learned the version of Ubuntu on the laptop differed from what was on the included install CD. After much aggravation, an installation of Fedora, then re-installing Ubuntu I began looking for a new distro. A colleague was (and likely still is) a Slackware advocate, so I opted to follow his recommendation and give it another try. Ultimately I gave up on it because I couldn’t get the video driver working correctly in X and then tried another distro I read good things about called Arch Linux.

A New Home: Arch Linux

I installed Arch and ran into the same problem I had with Slackware. I was stuck at 1024×768 resolution. After spending a few hours running in circles I ran X -configure from a terminal and low-and-behold I had native resolution in X. In retrospect the same “trick” would have worked in Slackware, too.

I went to work installing Gnome and adding my customizations. Arch Linux had a great community. I don’t recall spending much time on IRC, but I read, and sometimes participated on, the mailing lists, submitted package builds to AUR[8], and overall really liked the distro. This again went on through a couple of laptops and desktops, but then things started to change in ways I didn’t appreciate.

Linux Let Me Down

I think it was in early 2011. Changes were afoot in the Linux world. Big changes. Rumblings emerged about the new audio subsystem Pulseaudio and a new init system, systemd; two projects spearheaded by the same developer. A developer I shall not name, but who carries a reputation for being abrasive. Both Pulseaudio and Systemd felt forced. I’m sure part of this was my overall preference to leave things that were working as they were. I had poor experiences with Pulseaudio already, and I didn’t want the same experience with something as crucial to a Linux system as init. Along with these two software changes was another change known as usrmerge[9]. I didn’t think the arguments[10] in favor of the change made a good case. The data just wasn’t there. After exploring the history[11] I understaood the rationale; however I remained unconvinced. It was about how it was sold. It was forceful. And it was an elitist “I know better than you because reasons” approach. Arguing with logical fallacies is a fool’s errand, so I mostly grumbled in silence and figured out where to go next.

Death By 1000 Papercuts

It wasn’t just proposed subsystem changes that pushed me away. I reached a point where the need for computers and software to just work outweighed the interest and novelty of tinkering and troubleshooting to keep things running. Back then gaming on Linux was a novelty, and I only played a couple of games, but they ran well under Wine[12]. I began dreading updates to Wine, the Nvidia drivers, or Pulseaudio. One day along with updates for the aforementioned packages came a Gnome update and after rebooting to install new a kernel I was met with a horrible shock: Gnome 3.

XFCE Didn’t Quite Save The Day

I hated the new version of Gnome. Not only was it unpolished, but it was completely different and, to me, unintuitive. I tried to massage it more to my liking with Gnome Shell extensions but in the end I gave up and migrated to XFCE. I always liked the look at feel of the GTK widget set. QT always looked plastic and too much like old Windows for my liking. KDE is nice, really nice, and I used it for several years early on, but somewhere in the 3.x releases I found I didn’t like its look and feel, so I went back to Gnome. That’s how I ended up on XFCE. It felt more like the old Gnome, it was faster, and it just worked. Unfortunately it wasn’t enough to keep me on the Linux Desktop. Something broke with the Wine/Nvidia/Pulseaudio “unholy trinity” one too many times, then Apple announced new Mac Minis with discrete graphics.

Enter Apple

The announcement of the new Mac Minis wasn’t my only impetus to move from Linux to Mac on the desktop. A friend and colleague had shown me his Macbook and how Apple seemed to have fixed most of what I found annoying about OS X circa Leopard. I picked up a new Macbook with Snow Leopard[13] in late 2011 shortly before Lion[14] arrived, and I finally had a laptop where everything “just worked.” The laptop was again a mere tool. In early 2012 I picked up a Mac Mini and the desktop transformation was complete. I still ran Linux servers, but my desktops were all Mac.

The New Normal

I really hate that phrase, but in the context of this post, it fits. A change in role at work lead to my being issued a company phone, an iPhone 4, and I picked up an iPad 2 to use as an e-reader. I began to appreciate the integration between the devices on the Apple platform. I liked being able to keep data and settings in sync, something Apple seemed to improve upon each year. Eventually I was all in on Apple using iCloud to keep devices in sync and looking to the App Store as my first source for software. I was happy again with my personal computers and I felt like this is where I could stay for a long, long time. And I did. Then history began to repeat itself. That is the subject of the next post.

External Links

  1. Maximum Linux Security: A Hacker’s Guide to Protecting Your Linux Server and Workstation
  2. Special Edition Using Linux (5th Edition)
  3. The Linux Documentation Project
  4. TrinityOS: A Guide to Configuring Your Linux Server for Performance, Security, and Manageability
  5. Mandriva Linux: Name Changes
  6. Linux Ricing
  7. Gentoo Use Flags
  8. Archlinux User Repository
  9. The Case For The /usr Merge
  10. Booting Without /usr Is Broken
  11. Understanding the bin, sbin, usr/bin , usr/sbin split
  12. WineHQ
  13. OS X Snow Leopard
  14. OS X Lion