Sigh.
I threw in the towel after almost three months. I’m back on Mac. Not because I love the OS so much or feel any allegiance to Apple. But because, after three months, I just couldn’t keep fighting the good fight while being distracted from my actual work and ultimately less productive. I had to get back to being able to focus on work without my computer being a daily issue.
For those just joining us, I had been delaying an upgrade of my Mac because I didn’t like the new Macbook Pros and also because I don’t really love supporting Apple’s walled garden on principle. At the same time, I’d been contemplating trying a Linux laptop but still had scars from the multiple previous times I’ve tried to make Linux my primary work environment. I did not want to be on my own for making things work - I wanted a supported, first-class-citizen Linux laptop. And I also wanted a nice piece of hardware - 13”, lightweight, long battery life - because I’m mobile all day long and also commute by bike (which are requirements System76 cannot currently meet, if you’re wondering). Finally, back in June, with my 2012 Macbook Pro really starting to show its age, I decided to try a Dell XPS 13 Dev Edition, with Ubuntu 16.04 pre-installed) as my primary work machine.
I tried so hard to be productive with a Linux laptop. I really, really, really wanted it to work. I wanted to prove that Linux could be an everyday work desktop environment. But Linux didn’t love me back. This summer was a constant stream of large and small issues, of tantalizingly great experiences that were all too fleeting and unpredictable, of fighting my laptop when I should have been focused on the task at hand. After trying Ubuntu 16.04, Antergos (Arch), and finally Ubuntu 18.04, it just doesn’t work well enough for me.
Now, I’m sure people will read this and think “what garbage, Linux works perfectly fine for everyday use, this guy doesn’t know what he’s doing.” I’ve been using Linux since 1994 (installing Slackware from floppies!). I’ve been developing software to run on Linux for my entire career. I spent a decade as system administrator for a room full of 300 linux servers. I’m definitely comfortable tinkering with it. But my job these days is to be an IT Director (and occasional software developer), not a Linux administrator. I need a computer that just works and gets out of my way. I knew Linux would have some config pain up front, but I needed to get it to a point where it faded into the background and let me get to the task at hand. And I never got anywhere close to that. Yes, it -can- work, if you have a very narrow use case. There’s a guy at work who does this successfully. But I’ve concluded it’s -not- a general purpose solution. Not yet, maybe not ever.
This post would be several thousand words too long if I tried to explain the entire journey this summer. Instead, I’ll just share a few of the bigger issues that led me to this point.
- Linux can’t deal with per-monitor scaling (no, Wayland is not the answer), which is a HUGE issue when your laptop monitor is > 300 DPI and your external monitor or the TV in your meeting room is at < 150 DPI. One or the other of those screens is going to be almost unusable if you try to use both. Wayland may be the answer someday, but it’s not close yet (few apps support it, so they revert to XWayland… which doesn’t support per-monitor scaling). Which meant…
- Lack of per-monitor scaling meant I couldn’t run a meeting the way I want to, which is laptop as screen 1 and external as screen 2, so I can take or view notes locally and get things queued up while having an agenda, presentation or current content up externally for the room. Best I could do was mirror screens (when that worked, which was only in some of our rooms). And even then, the content on my laptop screen would be tiny so I had to hope the apps on my laptop had good content scalability options. Leading to…
- Each app has a different way to scale its contents. Some apps you can just ctrl +/-. Other apps need to be started with various flags. I found myself creating “hi-res spotify” and “low-res spotify” launchers, for example. I was just dealing with scaling apps up and down All. The. Time. as I moved around the office. Speaking of moving around the office…
- Linux behaves unpredictably when docking/undocking. There are lots of facets to this, but the biggest annoyance was that it would sometimes take more than a minute or two from docking to usable computer, and occasionally some peripherals would just not get connected.
- Linux also has poor (basically, no) support for suspend-to-disk out of the box, and it’s not easy to get working if you can get it working at all (I tried for two hours then gave up). So, if you let your battery run down, you lose your session.
- Now combine suspend and docking quirks and you’ve got a real treat. Edge case you say? No, it’s how you leave every meeting. You close your laptop, you walk back to your desk, you dock, and you want to get back to work. I do this 5-10 times a day. With Linux, this routine became like a cross between Russian roulette and Pavlovian intermittent reinforcement. Sometimes it worked and gave me hope to keep trying. Other times it failed completely and I had to reboot.
- Bluetooth is not stable. I developed all sorts of scripts and tricks to get the computer to realize my Bluetooth mouse was around.
- Dealing with the trackpad was a nightmare. Trying to get it to detect and ignore spurious palm touches was incredibly finicky and ultimately unreliable.
- I had a couple software alternative showstoppers. The biggest was that I never found a satisfactory Evernote client, which is my constant note-taking companion. Each of the several I tried had significant usability issues, and using the web version is not as seamless as the desktop client. I also never found a terminal I liked as much as iterm2. LibreOffice is good in a pinch but not really a compatible alternative to Office (that’s one issue I expected).
- Dell doesn’t support Linux very well. When issues arose, it was hard to find information, and it almost entirely came from the community and not the company when it was available. While they’re now selling laptops with Ubuntu 18.04, it’s still not clear that they officially support upgrading from 16.04 to 18.04, more than 5 months after 18.04 went stable.
- It’s not just Ubuntu. I tried Arch after the guy at work suggested it. Gnome was better than Unity, but Gnome needed a lot of work too. I hobbled along with Arch until package updates completely locked me out of my machine. Arch updated glibc. The new glibc broke electron apps, and I rely on multiple electron apps, like Slack and Atom. I tried to fix Slack first - an AUR slack-desktop package update claimed to specifically fix the glibc issue by packaging an older, working glibc with Slack. Well, the older glibc managed to corrupt the new system glibc to the point where I could no longer log into Gnome. I went back to Ubuntu ands upgraded it to 18.04 to keep trying with Gnome (and Wayland).
- A thousand other little things that don’t work quite right or aren’t polished. There’s no “lock screen” button in Arch’s Gnome interface. There’s a weird slider screen on the lock screen in Ubuntu that you can’t get rid of that would make more sense on a tablet. Plugging in headphones doesn’t automatically switch output to the headphones all the time - but it does sometimes. Whee!
- On and on and on.
The straw that broke my back, the thing that made me raise the white flag, was one week when my mouse kept getting stuck in text select/highlight mode in Ubuntu. The only recovery was to drop out of Gnome altogether to a text session and pkill nautilus. Canonical knows about this bug. SINCE 2009! https://bugs.launchpad.net/ubuntu/+source/rapidsvn/+bug/402892 It happened again one morning and I just gave up right at that moment, walked to my boss’ office, told her I made a terrible mistake, apologized, and asked if I could order a Mac. True story. The XPS will be reimaged as a Windows machine and some lucky staff member is going to get an awesome Windows laptop.
In the end, I had what turned out to be one of the most unproductive three month stretches of my career. Now, there are certainly other factors for that, but nearly every day I spent time fighting something on my laptop, and even when I wasn’t I was a less productive worker because of all the compromises I was making. It was time to admit defeat.
I knew all along this was going to be a gamble, but the thing that surprised me the most is how similar this experience was to the last time I tried this, about 10 years ago. I had hoped that Linux on the desktop had progressed farther than this by now. But really, the overall feeling was more or less the same. An uphill battle. Fragmented ecosystem. On my own trying more and more speculative fixes to things. Making compromises and finding it harder and harder to justify the headache based on idealistic principles. Overall, it was crushingly disappointing, to be honest.
Along the way, I thought more about how the guy at work - who felt bad as he witnessed my experience as he had encouraged me to try it - does it more successfully that I did. It’s probably a combo of things. He has a System76 laptop, a company which solely does linux laptops, and that helped with some of the specific hardware issues. Most importantly, his laptop screen is not a high DPI screen, so on occasions where he uses two monitors at the same time (which is much rarer for him than me), it works ok. Certainly, if you’re reading this debating whether or not you want to give this a try, do not use a high DPI laptop! He’s also mainly a developer, not a director, so he’s writing code a lot more of the time than I am. He doesn’t use bluetooth. Doesn’t use Evernote. Doesn’t stay away from a plug for a long time, so suspend and battery issues are less important. He travels all around the office with an external keyboard and trackball, so he doesn’t have many trackpad issues. He has a Windows VM for Office when needed, which is rare. He has far fewer meetings than me overall and even fewer still where he brings his laptop, and fewer than that where he needs to present. Basically, his use case is much simpler and narrower than mine, and I think that’s how he’s able to pull it off. He’s honestly also got a stronger idealistic, principled view of this and as a result is more willing to work through all the little issues.
So where am I now? While all this was going on, Apple refreshed their Macbook Pro line. They started using 8th-generation processors, and they claim to have fixed the keyboard failures that plagued the last model - two of the big reasons I resisted a Mac upgrade in the first place. I observed as the first couple of these new MBPs came in for laptop refreshes for staff, and the transition seemed to be going smoothly. Finally, I had the aforementioned talk with the boss and ordered a 2018 13” Macbook Pro with an i5, 512GB SSD, and 16GB RAM.
It arrived a week later, and there was actually a palpable feeling of relief that the experiment was over and I could just get back to work. That’s when I knew it was the right decision, as disappointed as I was. Two days later, I was up to full productivity on the new MBP, and I haven’t looked back since. There’s still a lot I don’t like about Apple the company, and a couple of things I don’t like about this particular piece of hardware, but I definitely have a newfound appreciation for the consistency and stability of the user experience and how that contributes to my productivity.
I certainly understand those who want to use Linux as their everyday desktop environment, and I am a kindred spirit to them on principle. I admire the perseverance and effort these folks have shown to keep championing Linux on the desktop. However, I do think that many of the folks out there doing this are minimizing the time and effort it takes to make Linux work as a desktop environment in a world that largely doesn’t care about making Linux work as a desktop environment.
The pragmatic side of me eventually got to a point where I decided that this is not a battle I can fight any more. For me at least, Linux as a primary work desktop environment is not ready, and it will be many years before I am willing to try again. I’m simply happier and more productive back on Mac. It may not have been my choice in an ideal world, but it’s going to be my choice in the real world for a while longer, and I’m ok with that.
Now, I need to get back to work…