Will Styler's Homepage
Will Styler

Associate Teaching Professor of Linguistics at UC San Diego

Director of UCSD's Computational Social Science Program

Moving from MacOS to Linux: What’s missing?

November 4th, 2023 (Updated December 2023)

I’ve used some variety of Linux on and off since the turn of the century (a phrase which deals 2d20 psychic damage to us Millenials), but, excepting an eight month stint on Gentoo Linux in 2005, I’ve mostly been a MacOS person.

But, as I’ve mentioned before, Apple’s continued malignant narcissism, my discovery of PC Gaming, wildly powerful hardware at fractions of Apple’s pricing, and the unfortunate soaking of my MacBook Air in a rainy bike ride home, all conspired to push me to move my life to Linux about a year ago.

I’ve had to learn a lot, adapt a lot, and make a lot of adjustments and fixes, but these days, Fedora Kinoite is serving me remarkably well, and I’m able to exist in a largely linux-only world. I don’t know that I’d recommend it to somebody who doesn’t want to learn a lot and who doesn’t understand how a computer works at a deep level, but for me, it’s probably more good than bad.

But, there exist a few issues in software, desktop environment, and overall approach where the Linux Desktop experience is just plain lacking, and I figured I’d mention a few of those things today, both as a warning to future switchers, and as a guiding light for Linux developers, looking for something to try, who might give a damn what a random person says.

Things I once missed, but found fine replacements for

There were some apps which aren’t cross-platform which I thought I’d miss a lot, but which I don’t particularly miss now that I’ve found replacements.

But it’s not always possible to find a direct substitute.

Things I once missed, but became awful on MacOS since I left

PDFExpert

PDFExpert is (formerly, see edit) amazing software for reading, annotating, signing, and even modifying, redacting, and editing PDF documents. I used to badly wish it existed for Linux.

Instead, I use a mix of Okular for basic PDF reading, PDFArranger to rearrange, add pages, and those sorts of tasks, and xournal++ for writing on PDFs.

This is not as good. I am, simply, worse at working with PDFs on Linux. But such is life.

December 2023 Edit: I recently attempted to use PDFExpert on my wife’s Mac to help her to try and mark up a PDF document, downloading it with the intent to use my old license code and regain the power I once had. Now, though, it looks like they’ve moved towards a subscription model, and made the software worse in a variety of ways unless you do so. So, amusingly, despite being a paid customer who bought a permanent license, I was unable to use the app to do what I needed to. So, I sent the file over to myself and did what I needed on Linux. Enshittification comes for all, and this is a nice example of the kind of extractive and consumer-hostile conduct which simply isn’t a thing in community-driven products.

Applications I miss

Here are the MacOS apps that I miss most, in order of descending pain:

DevonThink

There is, as near as I can tell, no good replacement for DevonThink, a personal knowledge-base creator with the ability to OCR, catalogue, and even share to a mobile app, your PDF world. For academics, it’s a wildly powerful tool, and I miss it deeply, even though it’s very much a “put everything into the database and never take it out” sort of tool.

The closest replacement I’ve found is OCRmyPDF mixed with Recoll, which gives you the ability to both OCR PDFs, and then to read them all into a massive, searchable database. The UI experience is not amazing, and the functionality is 80% or so, with the advantage of being able to index files in situ, without pulling all the files into a big database which can only be accessed through Recoll. This works, but it doesn’t work well, and if DevonThink announced a Linux FlatPak tomorrow, they could take my damned money.

Alfred

Alfred for MacOS is a sort of swiss army knife for efficiency, which simultaneously allowed you to set macros, search files, do snippet expansion, and so very much more. It was generally the first thing I installed on a Mac, and was unquestionably powerful. More importantly, it was just one tool, which did a bunch of necessary things, much more readily.

I’ve mostly replaced Alfred using a combination of tools.

BibDesk

Weirdly, despite there being no lack of reference managers for Linux, most of them conflict with my life, where BibDesk did exactly what I needed to. I just want my reference manager to:

As near as I can tell, none of the current options on Linux do this. I’m now using Zotero, using their sync service to keep metadata in sync across machines (because otherwise, the database goes bye-bye), but with files synced over syncthing. But Zotero relies on an opaque database, which seems more apt to corruption than a Supreme Court Justice at an RV Dealership, and even syncing the database doesn’t sync (e.g.) plugins and plugin configuration. How I wish they just had a syncable .config folder with all the preferences and plugins and state there, with a folder where files were saved according to some reasonable naming scheme. Zotero is probably the least reliable software I use regularly, and as a linux user, that says a lot.

Calca

Calca is a markdown text editor which allows you to set variables and do math directly within the text, which updates live. It’s not something I commonly used, but in moments where I did (e.g. trying to work out the right compensation for a position with many components in varying hour levels and costs), it was indispensable.

There are some plugins to do vaguely similar things in Obsidian, but with a required manual ‘calculate’ step and without the same amount of power. In practice, now, I’d probably use a Jupyter notebook, and try to write commented python code instead. Much less pleasant and readable, but cross-platform and free.

Mailmate

MailMate is a Mac mail application which has a wonderful ability to set keyboard bindings for efficiently doing away with mail, to display taskbar icons when different mailboxes have new mail, and generally just works, online and offline. It is great software, which I would love to see ported over.

On Linux, I’ve had to go decidedly old school, using neomutt in concert with isync to download and quickly move through mail. It’s less pleasant to use offline (as there’s no concept of ‘outbox’ which sends when you’ve got internet), and setting it up is an exercise in masochism, particularly if your workplace is control-freaky about mail clients and uses OAuth2. But neomutt, combined with a shell script reading the count of files in a folder which displays in my taskbar, works.

LittleSnitch

LittleSnitch is a network monitoring and firewall tool, which allows you to block apps from phoning home, to see who’s sending data (although Apple exempts itself from this monitoring), and to monitor the overall network flow to and from your device.

Although OpenSnitch is a thing which I need to try, for now, I’m using the KDE Network monitoring widget to see when I’m sending data, and Nethogs to see what applications are doing the sending and receiving. But I do miss the control of LittleSnitch, and as long as Apple allows it to continue to exist, it will be a great tool.

Things that should work better

For what it’s worth, I’m aware that there are methods folks talk about for fixing some of these things, and I’ve tried to fix all of them unsuccessfully. You’re welcome to email me if you feel I’ve missed something obvious, but I’ll also argue that if I, a deeply techy person, can’t naturally figure it out, it’s gonna be a problem for lots of folks.

Unicode is unevenly supported

One of the lovely bits of MacOS is that unicode is pretty widely supported. No matter where you paste an emoji, an IPA character, a whatever, it will work. This meant that Espanso snippets containing unicode characters don’t reliably work in all apps, and there are many frustrating moments where pasting doesn’t actually paste what it’s supposed to.

Keyboard Shortcuts are scattershot

During my many years of MacOS, never once did I ask “What’s the keystroke to Copy and Paste here?”. I know that the joy and pain of Linux is the diversity of software, and the lack of a standardizing body, but the fact that key combos that should be standard and always work are not standard and don’t always work, is one of those things that readily shows the downside of that approach.

The other major downside is that setting system-wide keyboard shortcuts to individual app functions without CLI commands doesn’t work well. I can no longer bind a key to automatically unmute my Zoom session, no matter what app is in the foreground, I can only bind within the Zoom app, and those only work while Zoom is in front.

AirPlay

Sadly, because it’s an Apple Standard, Airplay (2) isn’t well supported on Linux, which means I can’t straightforwardly send audio to an AppleTV or Sonos device. noson feels very hacky, but it does let you at least stream to a Sonos device on the same network. And you can be an airplay player using shairport-sync, but I’m yet to find a good Airplay output plugin for Pipewire.

But, of course, this is more an issue of Apple (and Sonos) avoiding open standards than a failure of Linux.

Cross-Compatible Data Formats

This one’s entirely on Apple, but there’s just not a drive format that works great on Linux and on Apple. NTFS or FAT work, and you can read HFS+ on Linux, but not super well on either side. It’s a shame Apple doesn’t support reading/writing EXT4 or BTRFS or another modern filesystem, let alone the ability to mount a LUKS encrypted partition. But, in practice, this is just another wall around the garden.

Connecting Monitors

In X11, connecting a new monitor to a running machine is just a janky experience. Flashing, resolution swaps, back-and-forth. Worse still, it’s perfectly reasonable to sit your laptop down, plug in a Thunderbolt Dock and monitor, then turn the laptop on, and expect it to detect the monitor and keyboard once it opens a desktop. This doesn’t always work, so you usually need to wait until the laptop is fully booted and on the desktop to plug in.

Hopefully this will be easier in Wayland, but for now, this is decidedly ‘barely working’.

Edit (December 2023): The flickering and false starts when connecting an external display actually wound up improving substantially in Fedora 39. A very nice surprise.

Sleep

Macs sleep easily, reliably, and without losing much power while they’re doing so. Linux laptops have trouble with this, and it’s not at all uncommon to find your laptop drained by 45% after a day or two sleeping in a backpack. You can tell that most of the energy in Linux development goes towards servers and desktops, and laptops just don’t get the same love.

User Experience

Finally, I just have to say it (for the millionth time): the Linux Desktop offers a terrible user experience. This is partly that ‘design by hundreds of developers’ problem, with no general guidelines, and partly the issue that for many linux users, it doesn’t have to ‘just work’, and they’re willing to open up a command line and jump through hoops. Frankly, many discussions about bad UX in well-known programs just feel like hazing (‘Well, if it’s made so simple, then ANYBODY can use linux!’), and there’s a prevailing sentiment that sane and opinionated defaults which can be changed by the user at any time in their config files are a bad thing.

So, the answer to many problems is ‘Oh, well, open up a terminal and…’. There are weak or no GUI guidance to do very basic things (e.g. ‘How do I install a photo editor?’). Getting codecs to watch movies and view pictures can be an odyssey (which is why proprietary codecs are a bad idea), and some DRM providers block Linux altogether, meaning not all streaming services work reliably in Linux browsers. But, DRM is defective by design, so this isn’t a linux problem, but a social one.

Even installing software can be fraught, with many options, approaches, and no ‘Just go to the website and download…’, instead, people have to decide whether they want a .deb, an .rpm, a snap, a flatpak, an appimage, and more.

The simple fact is, many people who are competent on a Mac or Windows machine would struggle to get up to speed on a Linux machine. And this isn’t a ‘them’ problem.

There are signs of hope, though. Flatpak with FlatHub are allowing people to easily install GUI apps, keep them up to date, and more importantly, are allowing folks who make an application to package it once and let it work on nearly every distribution, getting rid of the pain of a plurality of package managers (although we still need a good, open-source equivalent for CLI tools). Linux distro installers are getting better and easier. Pipewire has made Linux audio basically work. Every major release of KDE brings big UI/UX improvements, which is a wonderful thing. And immutable distributions (like Silverblue) make updates safer, and mean that if something breaks in your system with an update, you’re a reboot away from being right back where you were.

But there’s still a long way to go before Linux is as ‘Just works’ as MacOS is for 99% of the world.

In Summary

One of these days, I’ll make a post talking about what’s better on the Linux side. But for now, hopefully this helps some would-be switchers to understand what they’re leaving behind, and helps them find some alternatives which at least get close. Most of all, I need it to make clear that this isn’t a switch to take lightly, even if it’s a good idea for privacy, freedom, and for many development tasks.

Update: That post now exists, ‘Moving from MacOS to Linux: What’s better’.

There are days when I wish I was still using a Mac. Days where I miss some tools which just don’t get good replacements. Days where something has friction that used to be smooth and easy. There are days where I have to work on the tool, rather than working with the tool. But those days are rarer and rarer, and usually when it happens, I learn something that helps me make sure it never happens again. Yet, as always, the grass is always greener on the other side.

That said, in those moments, I can just spec out a new Apple Macbook Pro which is equivalent to my Framework, and realize that it’s more than $2000 more, irreparable, and leaves my data stranded on a drive nobody can access without every element working perfectly. If I want to laugh, I’ll try to match my Desktop, which these days, Apple simply can’t do in terms of GPU, and the closest equivalent in terms of RAM and storage is $8,000 with no ability to upgrade a thing or add additional drives or functionality.

Or, if I’m really feeling the pain, I just fire up a great game which doesn’t run at all on a Mac, or I use Torch to run the latest local LLM or speech recognition model, or I tile some windows without Apple fighting back, or use some feature that Apple blocks simply for desire of control, iOSification, planned obsolescence, or just good old fashioned narcissism.

Usually, that’s enough to remind me that the grass ain’t so green after all.