From Linux back to the Mac

Date
EndeavourOS

Last year I spent a little over six months daily driving Linux but ultimately ended up coming back to the Mac. The experience wasn’t all bad, but there were just too many trade-offs in the end that weren’t worth it for me to continue.

So why did I switch to Linux in the first place? Around that time, I had just built a beefy gaming PC, much more powerful than the MacBook I was using. I thought, wouldn’t it be nice to be able to use this machine for work? So that’s exactly what I did (with Linux, Windows was off the table). Barring any show-stoppers, I insisted on sticking with it for at least a few months to give it a fair shot. And I did—for six months—before ultimately deciding to switch back to the Mac.

For the pedants: I’m aware there’s a difference between Linux (the kernel), a desktop environment (eg. KDE, GNOME, etc) and the distribution (eg. Ubuntu, Arch, etc). For simplicity, I’ll be conflating these terms and referring to the whole as “Linux” unless I’m speaking about a specific part of the system.

EndeavourOS (Arch) + KDE Plasma

I tried a few distributions, but ultimately decided on EndeavourOS (which is an Arch Linux spin-off with an easy installation and a few minimal extras) for the following reasons:

  • It worked out of the box with my hardware, which included an Nvidia Geforce graphics card that doesn’t play well with some Linux distributions.
  • KDE is a first-class citizen (rather than being a community “spin” or something similar).
  • I wanted up-to-date software, and EndeavourOS being a rolling release meant I would have the latest versions of packages. LTS release (and even traditionally released) distributions, while great for servers, aren’t up-to-date enough to my liking for desktop use.
  • I had a good amount of experience with Linux in the past, so I wasn’t scared of using an Arch-based distro.

One of my hesitations in choosing a rolling release was the risk of an update breaking the system, but Arch and EndeavourOS has great documentation, and I felt I had the technical ability to troubleshoot any issues that may arise. I did set up snapshots that happened on every update, so in theory if an upgrade broke my system, I could roll back to a prior snapshot. Thankfully, it never came to that, although I admit to being nervous every time I did an upgrade because I wasn’t 100% sure if the snapshot restore would go smoothly when I needed it.

I chose KDE Plasma (5.27) for my desktop environment (version 6 was not yet released). The default theme was visually appealing (to my eye), it’s efficient with system resources, and I felt it met my needs better than GNOME (and other desktop environments).

Initial Frustrations

The things listed in this section are what I would consider “reasonable friction” that comes along with switching to an entirely new system.

  • Control-based versus Command-based shortcuts. This took a bit of time to adjust my muscle memory because I have been using the Command key (Alt position on a PC) to initiate the most common shortcuts for years (copy/paste/window management, etc).
  • On the Mac, Cmd+Tab cycles through separate applications (of which there could be multiple windows), and Cmd+Backtick cycles through windows of the active application. I see people gripe about this, but I vastly prefer this method of window management over the way Linux (and Windows) handles it.
    • Thankfully I was able to closely approximate this behavior in Linux (without hacks) thanks to KDE’s ability to customize the system.
  • Lack of a global menu. For better or worse, I got used to having it after using Macs for several years.
    • There’s a way to add a global menu in KDE, but it doesn’t work with all apps and doesn’t always behave consistently in Linux since the windowing paradigm (see above) is inherently different in macOS.

It only took me about a week to get used to the workflow changes. These are the things I felt I needed to just power through because it wouldn’t be fair to hold them against Linux just because it works differently (ie. not worse) than what I was personally used to.

What I Liked

On a technical level, my experience was pretty smooth. I didn’t run into major issues and overall it worked well for web (and Android) development. Here are some highlights on the things I liked:

  • The level of customization and personalization that KDE allows. The computer really felt like mine, as opposed to macOS where it often feels like you are renting a system from Apple (this turned out to be a double-edged sword, more on that in a little bit).
  • Because KDE apps use the QT framework, as long as you stick with the default KDE theme (Breeze) and other QT-based apps, the system as a whole looks pretty consistent (and looks good, in my opinion).
  • I really liked the Dolphin file manager. It was fast, has a nice UI, and is more full-featured than the macOS Finder.
    • If I didn’t like the file manager, I could have used a different one because there are quite a few good options in this space on Linux.
  • Despite appearances (and its own past), KDE Plasma is actually light on system resources, which allows those resources to be spent on other (more important) things such as VMs, web browsers, Electron apps, dev servers, etc.
  • A large majority of software in Linux doesn’t cost anything.
  • Thanks to Valve, a lot of mainstream games are playable on Linux now. While I had a separate Windows partition used solely for gaming, sometimes I didn’t need to bother using it.
    • Linux is way ahead of macOS here.
  • While Linux spent a number of years chasing mobile trends when the iPhone and iPad exploded in popularity, during my time with Linux, the desktop has been a first-class citizen that the community cares about. I feel like macOS is always playing second-fiddle to its mobile platforms, and the lack of attention it gets drives me nuts.
    • From what I’ve observed, a lot of Mac users seem to care more about the iPhone and the iPad as well (it’s just an iOS-development or work appliance to them), so the current situation is unsurprising, but still.
    • Since Apple no longer “sells” macOS directly, I don’t see why they always feel the need to introduce more and more gimmicky features each year (hello Stage Manager), which introduce more bugs to the system, instead of focusing primarily on bug fixes, stability, and making core (not optional) system apps better (like Finder and Dock).

Things I’m Indifferent About

Here are some of the things that I personally don’t have strong opinions on, but are often touted as benefits of using Linux over Mac:

  • Free (as in freedom) software. I like (and benefit a lot from) open source/libre software, but I’m not dogmatic about the idealogies surrounding it. I consider myself more of a pragmatic when it comes to software (and I am totally uninterested in politics).
    • The thing I do feel strongly about is the freedom for people to decide whether they want to make their source code available to others (or not).
  • Privacy and security. Of course I care about privacy and security, but macOS is (currently) private and secure enough for my needs.
    • If I’m ever unhappy with Apple in this regard, I’ll vote with my wallet.
  • Window snapping. A lot of people swear by this and macOS is the only mainstream desktop operating system that doesn’t have it built-in (I don’t count the full-screen window split gimmick), but it has never caught on for me personally.
    • I’ve tried window snapping before, and windows never seem to be in the right spot, or are too small, too narrow, etc. and it’s always been more trouble (for me) than what it’s worth.
    • Using keyboard shortcuts for application switching and manually adjusting window positions and sizes has never impeded my productivity.
  • Task bar. I’m not a huge fan of the macOS dock, but I manage windows and launch applications via the keyboard so having a more full-featured taskbar isn’t something I benefit from personally.

Why I switched back to Mac

So far it sounds like I was a pretty happy Linux user, and in a lot of ways I was, but there were some important things I couldn’t get over in the long run.

Backup and upgrade paranoia

Because I was always in fear of having to roll back to a previous snapshot after an update (and there are a lot of updates in a rolling release), in between updates I would compulsively backup my configs and anything else that’s not immediately checked into an online git repository. I had changed so many small things over time that I’m not sure I would be able to get the system back exactly as I had it before, especially if a snapshot restore didn’t work and I had to start from scratch.

This leads me to my main gripe with KDE. Despite customization being one of its primary advantages, there’s no official, easy way to back up your whole configuration. I wish they had an official backup and restore solution because searching online gets you different answers. Some people give you a list of directories to back up (of which the list may have changed). Some say to back up the entire .config directory (which I rarely ever want to do because so much junk accumulates there over time). Some say to use a program that hadn’t been updated in a long time (and didn’t work for me when I tested it). I settled on writing down all my settings and configuration steps in a note that kept growing over time and was a pain to keep updated.

While I didn’t experience any issues with not being able to boot, prior Linux experience told me it was coming at some point, and when it did happen, instead of going about my normal work routine (which involves scheduled meetings throughout the day), I’d likely be stuck debugging my local system instead. This could happen with any system (including the Mac) but I felt like it was only a matter of time on Linux. After years of continuous use, macOS has always been reliable for me.

Also, KDE Plasma 6 was around the corner, and who knows how successful of an upgrade that would have been. Maybe it would have went smoothly, but maybe not and the resources online for debugging may be limited. Because Linux runs on such a wide range of hardware, there may not be very many people with your exact problem who happened to post a solution online. If there are any benefits to having limited hardware selection on the Mac, this is one of them.

Customization fatigue

To be clear, this is a “me” problem, but the amount of customization and configurability in a Linux system turned out to be a double-edged sword. On one hand, it’s really nice to tweak your system to make it truly yours (within the confines of your chosen distribution or desktop environment). On the other hand, for people like me who get stuck tweaking things until they are “just right”, it becomes a real strain on my productivity (especially when you factor in the headache of having to constantly back-up configuration).

With macOS, since there are so few ways to customize/personalize your system, this problem just doesn’t exist there. Luckily for me, macOS is visually pleasing, is consistent throughout, and provides enough customization to keep me from getting frustrated during normal use. I really can just focus on what I’m supposed to be doing.

iOS and Safari

Since web and iOS development is (an important) part of my job, I could never fully divorce myself from the Mac. iOS development is only available on Mac, as well as the Safari web browser (which is far too big to ignore, especially on mobile). Whenever I had to do anything involving iOS development or Safari, I had to switch to the MacBook anyway, and the muscle memory I had to un-learn would get in my way yet again.

I wish there was a way to develop for iOS on Linux and run Safari, but alas, there is not. Having to use two different systems regularly was a headache.

Messaging and mobile

This is an area where vendor lock-in really got me, because it involves other people who I can’t impose my choice of platform on. During the first part of my switch, I switched to an Android phone so I could still see and respond to SMS messages from my computer using the Google Messages web app, but anything else that involved my phone would cause me to have to pick up my phone many times throughout the day (which is really annoying for me).

I ended up going back to iPhone because for one, I like iOS better than Android, and also because pretty much my entire family and a large number of people I interact with regularly use iPhones, which made it a pain for me to communicate with them. And since my kids didn’t have phones at the time, there was no way for me to send messages to their iPads at all during the day (either from my phone or from my computer) without installing another messaging app (Telegram) to accomplish something that’s built-in on iOS. Since they used Telegram solely to communicate with just me, they’d often miss my messages.

I also have an Apple Music family plan (because again, my family uses iPhones and they have no desire to switch, and we listen to a lot of music), which means I had to use the Apple Music web app on Linux which isn’t great (although I’m glad I was able to use it at all).

So ultimately going back to the iPhone (from Android) made the most sense, but that caused even more friction because there’s absolutely no “continuity” between my iPhone and Linux system. Conversely, the Mac and iPhone work really well together (surprise, surprise). I really missed having access to messages and phone calls from my computer during the day (via Handoff on the Mac). Having my phone be “in sync” with my computer, and typing messages using my keyboad without even touching my phone is a huge plus for me.

The Mac is Better (for me)

During my time with Linux, while there are some things I liked about it, overall there wasn’t much that I liked better about it than macOS. Using Linux involved all kinds of trade-offs and daily paper-cuts that I just don’t have to deal with on macOS. Besides, there isn’t anything I could do (or want to do) on Linux that I can’t do on the Mac, but the same isn’t true the other way around. And since I’m not against proprietary software (unlike a lot of Linux users), there’s really no reason for me to not just use a Mac.

The fact is, macOS is a highly polished Unix desktop operating system that has access to all the POSIX-based tools that Linux has (plus a healthy ecosystem of high quality third-party desktop apps). So unless Apple does something really stupid (like locking down the Mac, iOS-style) or becomes primarily an Ad company (like Google and increasingly Microsoft), I’m going to be sticking with the Mac for the foreseeable future.

Switching back to the Mac was like going home after being gone for six months, and as a result of not having to deal with the previously mentioned issues, life’s been a lot easier. So to revisit the original question I asked myself (wouldn’t it be nice if I could use this machine for work?), I got my answer, and ultimately it turned out to be “no”.