Linux distro survey for a 2016 12" Macbook

I’ve been using an early 2016 Macbook 12” for 4 years now. It’s been a fantastic laptop and my biggest issue has been not being able to find another piece of hardware I like as much. I finally had to replace it with a maxed out Macbook Air as the closest substitute, but still missing the Macbook. I decided to put Linux on it to see if I might still be able to resurrect it as a daily driver.

When I went hunting for information on getting Linux on my lightweight (<1 kg), retina screen, fanless, 12” early 2016 Macbook, most good info applied only to Macbook Pros. While I certainly believed getting Linux on the machine was possible, it’s a bit more of a dice roll on what works versus not for a four year old machine than in PC land. This post is google juice for other people searching on the same problem to not have to repeat tyhe work I did, and who might be looking for linux alternatives for this great piece of hardware if you are in the sweet spot for its use cases.

Summary

Bottom line, most things work in 19.10 based Ubuntu distros if you don’t encrpyt the drive partitions. Promisingly, even the nightly for Ubuntu 20.04 (which many distros will be based on) have encryption and the Macbook keyboard working with its higher kernel but the lack of a working speaker driver out of the box (someone has been working on one) makes this while thing a deal killer for me as a daily driver but more a wait and see. This is the state of what was working and wasn’t at time of writing.

You want at least a 5.4 linux kernel if at all possible. Most 19.10 debian/ubuntu based distros will work though I had heaps of issues with partitioning and installing the actual operating system depending on the distro. Solus 4.1 Fortitude, despite it being my frontrunner favourite absolutely refused to install, despite re-partitioning and efibootmgr hacking at an (even for me) uncomfortable level, and hitting them up in the Solus installation forums for solution/workarounds (that said, Solus community people were super helpful and supportive with suggestions, and I still think Solus Budgie is a fantastic distro though I am leaning more towards POP_OS! these days.).

The Bad

  • Speakers do not work (but headphone jack does - no bluetooth headphones as bluetooth not working). There is also this guy working on a speaker driver that works with the unusual Cirrus card the 2016 has, but means you have to choose between speakers or headphone jack.
  • Bluetooth not working (suprisingly irksome since I use headphones and a bluetooth speaker. This also compounds the speakers not working)
  • 19.10 based distros do not have the keyboard enabled if you choose full disk encryption in the drive when you boot up (fixed in the 20.04 Ubuntu Focal Fossa nightly I tried though - so that’s promising.)
  • Webcam is non-functional and non-detected
  • 19.10 Hibernate/suspend locks the system
  • Every distro so far has the Display either too big at 200% factor or way too small at 100% so not taking advantage of the unusual screen resolution on the Macbook which requires significant tweaking and command line (you have to manually change gsettings to support fractional displays of 150% or 175% etc and it does not seem to save between login sessions at least on POP OS.).
  • Battery management seems to not be as efficient (though have not installed extra tools to management battery and my macbook has been suffering from needing to replace the battery for ages.).

The good

  • Keys for screen brightness, keyboard backlighting, volume, and music control all work
  • Resource usage is radically lower than OSX. Amazing really.
  • Plugged into a USB-C to minidisplay adaptor the Macbook on POP OS drove my Cinema Display beautifully once I’d put settings from mirror to act as a second display.
  • After heavily tweaking interfaces and firefox displays, you get a pretty sweet ultralight laptop though still insufficient as a daily driver replacement imho

Distro Notes

Solus 4.1 Budgie “Fortitude”

I’d been using Solus Budgie’s 4.0 version (or 3.999) on my secondary laptop system, an older 2015 13” Dell XPS (nosecam version) which worked very well. Stable, reliable, was easily configurable, and most of my beefs about it were around the fact they were slow to add applications or specific libraries (python 3.7 support, for example) into the curated repo to newer versions I needed for system tools and data science (but hey, the tradeoff for stable and curated). I really think Budgie is a sensible. well organized, and aesthetically pleasing desktop that helps you get real work done, and the Solus distro looks great (ugliness is one of my big beefs with linux distros as an alternative to OSX. Solus’ budgie is much nicer than the Ubuntu version.).

Solus 4.1 Budgie, “Fortitude” from using the liveCD seemed to have the best of everything going for it. Using a much newer 5.4 kernel almost everything seems to work, and more than that, Solus has lots of little details right which seem not to be sorted in other distros just work right in Solus. A good example is at least with the live CD it is the only distro of all I tried that had ctrl-click as a right click working as someone coming from OSX would expect. On the other distros I installed, a crazy two finger tap was the default or possibly configurable implementation for right click on the Macbook which took forever to figure out even after going into the Settings tools on those distros. It was also the only one that seemed to get fractional screen resolution set for the Macbook on the liveCD (neither crazy large nor small). Their designer deserves an award for attention to detail and making an aesthetic interface that looks better than most other distro, works differently, and yet feels familiar enough to immediately get things done and figure out how to do things.

Dropbox’s client icon shows up which is nice considering how many other distros do not have support for what many people use as their file share between machines these days (It’s nice setting selective sync graphically rather than on the command line with POP_OS and Elementary where they do not have tray icons that are working with Dropbox or do not support the older widget they use.).

My insurmountable issue with Solus is that despite multiple attempts, both with encrypted disk and without, the machine will not boot and is totally unable to find the Macbook disk (giving the dreaded flashing question mark folder icon). This effectively bricked the machine, though again, if I could just get the distro installed, considering how well the liveCD works I imagine I would be pretty happy. Very excited to sewe what they do with 4.2. There are drawbacks to the distro though. Besides package and library updates being quite slow, the eopkg manager seems good but few people package for it, and my impression is, as someone who would like to help out with fixing and contributing to the distro, that it i’s very hard to get involved in the Solus community (I asked repeatedly on irc how to start getting involved, only to be pointed at the issue tracker and a page on packaging.).

Keeping an eye on it. After burning a lot of time stubbornly trying to get this to work, I will wait for 4.2 and hopefully a fix on some of the boot loader problems a la Mac (there do seem to be issues there beyond just the Mac since there were several non-bootable system messages in the Support Installation forum.).

Elementary 5.1

Elementary would only install with disk encryption turned off due to its kernel version (I’m assuming). Booting into an encrypted drive has the Macbook keyboard non-responsive making it impossible to unlock the disk and forcing a reinstall.

To be honest, I want to like Elementary. I like the fact they’ve focused on making the desktop and apps better for people and taken some learnings from OSX. Their Noise app is probably the best music player on Linux at the moment imho. I have not had time to peruse their Photos application but I’m hopeful if it’s as good as Noise on migrating to Linux from OSX’s Photos and the 40k+ photos I have built up over 20 years (no, I am not kidding.). Would like to see them work on a Contacts app as well that’s well integrated into the desktop and other applications since this feels still like an unsolved problem on Linux.

My problem is that so much other software doesn’t work with the Pantheon desktop despite its aesthetics and how Mac-like it is. While I’m impressed they are building all the apps from scratch (which is something I’ve been thinking needs to be done in Linuxland for a long, long time), picking Vala as the language to be doing that in (instead of say, Go, Rust, or even Crystal) seems a sure road to insanity or the fringe as soon as one of thw few authors or maintainers drops out (seriously, I had not even heard of Vala until I started looking at Elementary’s backstory and I’ve been round the block.).

Besides Dropbox, key long-time apps don’t always work. On the last version of Elementary, emacs (emacs!) would not work properly without a manual launch fix because of a change they’d made to the X Server. It took a while of digging to get down to that, but emacs is a critical, venerable program for some people (ok, me) who are the precise type of people that are willing to use Linux.

While the new desktop is pretty, their latest design aesthetic in this version, somewhere between the professional clean of Solus and POP_OS and the almost plump default in Ubuntu (yes, not loving their new UI look) made me like it less than the previous though those are more aesthetic concerns and YMMV.

POP_OS! 19.10

System 76 makes a surprisingly excellent distro for its machines which I have to admit I had not taken a serious look at until I needed to get the Macbook up and running on Linux. While I love the way the desktop works (it is focused on being full screen and keyboard driven for serious devs and data scientists) and the interface is clean and professional, I think most of my beefs revolve around the “pudginess” of the graphic design widgets (which at least on my system are chunky and take up huge amounts of real estate than thinner widgeting would free up and its questionable desktop artwork - which makes the system feel the province of geeks rather than as a nice work and development environment. YMMV depending on how you view these things.).

Fractional display was not turned on as it was in other distros but setting that in gsettings (it does not save between settings) improved the screen real estate but did not improve the “chunky” feel of the widgets and windows which take up valuable working room on a small screen like my 12”. Again, this and a slim provided them on Solus makes me feel like they get this right out of the box (and leads to the feeling of a polished, curated system which works.).

That all said, aesthetics are tweakable in gtk+ so this might just be a matter of moving off the stock offering, though tweaking sucks up valuable time and energy otherwise employed (and the amount of time required for tweaking/fiddling and fixing slightly broken things all the time is one reasons I migrated to OSX from Linux in the first place on my laptop.).

At the moment, due to the way the distro works and it being highly keyboard and full screen focused, I’m actually leaning towards POP in the future and excited to see the April release on the new Ubuntu LTS base, though I will have to wait for them to hit the 20.04 Ubuntu base before making a decision on it as daily driver. Right now, I’ve got it installed on the Macbook 2016 12” and am using it nightly, but because I had to install it without disk encryption I cannot use it for serious work as my daily carry.

Ubuntu Budgie 20.04 nightly

Basically almost beta, with a shiny new kernel, this distro will be the basis for many other derived distros (POP_OS, Elementary etc). It made sense to see what I would get out of installing Ubuntu Budgie.

The process was smooth and I have to say, it has given me faith a lot of critical points are going to work out of the box for the Macbook 12” come late April. For example, disk encryption installed flawlessly out of the box and when I booted to the disk unlock screen, the keyboard on the Macbook worked right away, unlike all 19.10 based distros.

Also, while not a factor for me, they’ve designed an excellent Onboarding app which guides folks through installation and is probably great for non-power users.

Most of my issues besides the speaker, bluetooth, webcam, and screen rez issues were aesthetic around Ubuntu trying to reconcile the cleanness of the Solus Budgie default with Ubuntu’s more rounded graphic design which made the Ubuntu Budgie desktop much less pleasing than Solus Budgie. Also, a bunch of included applets which merely clutter up the Budgie menu bar rather than providing useful information or alternative shortcut functionality (though YMMV depending on your usage.).

Bugbears and Laments

I am one of those people that wants desktop Linux to work for me. Besides philosophical alignment with open source and Linux as an alternative to commercial vendors and companies, I lament a bit in 2020 that you still seem to make a lot of concessions to basic functionality and things working for Linux as a daily driver unless you’re doing everything through the browser. One of the reasons I applaud Elementary for the work it is doing on building a better desktop on Pantheon.

Many distro makers seem out of touch with users and not realizing they are providing a substitute for desktop environments rather than desktop apps. It’s a subtle difference that makes me question many choices they make across default applications, technologies, and programming languages. I cannot tell whether it is their misguided optimism or principle versus lack of pragmatism but I often find myself scratching my head (and, of course, need to also asy that without the experimentation you do have in Linux there is little progress on alternatives, so it’s a fine line.).

But as an example, at least two distros were talking about their shiny new calendar apps. While they certainly were pretty and plugged into the menu bar widgets in ways I liked, they were not useful to me at all because I simply no longer use a desktop calendaring app on my machine (though I do use emacs org-agenda which syncs with GCal). I use Google’s cloud-based web version and an iPhone app. Same as my email client. Web-based. It’s not that they focus on these things, but that integrations with them and other basic things are difficult at best sort of leading to a bubble on the operating system. Linux ends up being a walled garden at time which frustratingly makes integration and migration harder.

Gnome Contacts is a good example. While it is simple and looks fine, there is no way to easily import your contacts into it until you know it’s a simple frontend to the Evolution Data Server and install Evolution so you can get your contacts sorted that way. That alone kind of kills my enthusiasm to start using desktop Linux.

I think most people care about their data and capabilties, not so much their apps, and want that information and potential portable across platforms, providers, and time. I want my Gcal integrated into my desktop, but I don’t need another calendaring app. I would love it if every shiny menu bar widget integrated that though (note: I also have this complaint about emacs actually. Emacs is difficult to integrate with other services and despite its power takes its own different approach quite often.).

The things I do want, like a decent music player (shoutout to ElementaryOS on Noise) and a robust Photo app to replace/integrate with OSX’s Photos or Google Photos or evewn a decent twitter client that works across distros though so far I am only seeing people like ElementaryOS working on rebuilding these from scratch.

Better interactions and a less distracting, built-for-work desktop experience rather than a windows or OSX clone is also problematic. I feel like POP_OS is doing a good job on that and providing an alternative interface model that works though, of course, it took a bit of getting used to at first what with muscle memory on OSX.

I do love the way desktop Linux is vastly more efficient with its resources and speed than OSX, and how there is a minimal approach to running services. I am often stunned at the services Apple is running in the background of my machine for me I do not want running and dislike how I’m forced to use and pay for services (iCloud for my Photos, for example for simple syncing) whereas in the past I was not. In fact, the only feature I’ve been really loving in OSX these days has been the fact that my clipboard copies are portable across OSX and iOS (which turns out to be ridiculously useful as I become less device centric.).

Weirdly though, even within the developer and data science communities, I find Linux has not made the inroads it should because a lot of basic hygiene around interface and display still do not seem to be solved (in fact, one die-hard I know went back to OSX after buying a 15” Dell laptop just recently due to interface and display issues simply not working or being trivially resolvable.). I’m hoping, as we seem to hope every year, that Ubuntu 20.04 will make some big inroads in this respect as it does seem to fix a lot of basics.

Why is it such an uphill despite the move to a lot more web-based productivity? Perhaps something beyond gtk3 or KDE is needed, like the Cocoa interfaces that made OSX take off. Pantheon on elementaryOS feels like fragmentation but I understand the impulse (but, really… Vala?). It’s frustrating to me that I often think that Linux works better under the hood than my commercial operating systems but can’t seem to get chrome and simple app functionality and integration right enough to have people switch over to it despite its other advantages.

Again, I think Linux has a march to steal by focusing on interface interactions and integrations even if they provide unconventional interfaces compared to OSX and Windows like POP OS has done. Let’s see what the next crop of 20.04 based distros bring in April and how the latest crop of machine specific OS distros who take a page out of Apple’s book do in the next few months.