Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

david watson

a buck fifty in late charges from the local library

A Tale of Two Laptops: Linux on Macbook and Chromebook


If you have a Macbook Pro or a Chromebook, checkout Linux Mint 18 XFCE beta (for mac) or GalliumOS (for Chromebook).

Thankfully, 2016 is the year of Linux on the Laptop, even if it’s not a WinTel laptop!


I’ve run hundreds of Linux installs in the last 20 years, up to and including my own XFCE-based Cobind Desktop, so I’ve got lots of battle scars related to configuring Linux to work with various hardware and configuring XFCE since it was a nascent desktop release.

I’ve been working on laptops for over a decade. I mean, forget the desktop machine. I’m a nomad, I couldn’t possibly be tied down by one of those behemoths.

But as time passed, a dichotomy developed. I found that, when I was at home, I wanted speedy performance and screen real estate. But when I was traveling or co-working, I wanted diminutive form-factor and ten hours of battery life. Thus, I could leave the AC charger at home when I was on the bike or in the hotel room when I was walking to my destination.

In 2009, I bought the venerable MacBook Pro 17 (MBP). It has killer performance, an amazing anti-glare HD screen, and an uncramped keyboard, an SSD, and an NVIDIA GPU. At the time, I had never owned a new Apple machine, nor did I realize that a few years later Apple would deprecate the 17-inch variant much to the chagrin of fans of big, fast notebooks.

In 2014, I bought an Acer 720p Chromebook. It has arguably the best combination of price, performance, and portability of any machine I have ever owned. I immediately installed crouton with an ubuntu container. This, of course, has the advantage of sharing the chromeos linux kernel so that various peripherals just work because the driver ecosystem is borrowed from chromeos, not linux, due to the containerized design of crouton.


Both of these machines have served me well while I worked on them full-time, day-in, day-out on myriad software development and systems administration tasks.

I ran the latest Mac OS X on the MBP and ChromeOS with Crouton on the chromebook. This worked great for several years on the MBP and a couple years on the Chromebook until recently when I noticed that, after attempting to install the Apple MacOS Sierra beta on the MBP, that for reasons that are anything but clear, Apple decided to stop supporting the pre-2010 MBP from MacOS Sierra forward.

On the Chromebook/Crouton side, I just became frustrated with some instabilities that I saw over time where the project just wasn’t large enough to overcome the issue triage without having some money thrown at it.


So I devised a plan to install Linux on both the Chromebook and the Macbook and to try to keep them as close as possible so that I could work interchangably on either one depending on whether I was at home or nomadic.

My plan took shape as I discovered that GalliumOS had built a Linux distro based on Xubuntu 16.04 tailored to the most popular Chromebook variants based on Haswell, Broadwell, Bay Trail, Sandy Bridge, and Ivy Bridge.

Then I discovered that the fine folks at Linux Mint had introduced a beta based on Xubuntu 16.04 that was reported to work on Mac hardware.

What’s interesting is that I had previously installed Ubuntu 16.04 on the MBP. It was horrible. The default unity build is so heavy that, despite what I consider top-shelf hardware, the MBP under Ubuntu is slow to boot, slow to run, and painful to use with poor driver support.

And without sounding like Linus, I must say that, while I’m about the last person to spend more than an hour configuring a desktop, the fact that you can’t autohide the menu bar on unity after years of complaint, tells me that they just don’t get it.

My tweaks are simple:

  1. Autohide any bars so that all desktop real estate is preserved

  2. Configure keyboard shortcuts so that Ctrl-Left, Ctrl-Right, Ctrl-Up, and Ctrl-Down do tile left, tile right, maximize and hide, respectively

  3. Reverse scroll direction to natural scroll

  4. Make sure that Super launches menu/search

Both GalliumOS and Linux Mint get #4 right out of the box.

Contrast the morbidly obese Ubuntu with Linux Mint, where they have made it trivially easy to install, choose proprietary drivers for CPU, NVIDIA, and Broadcom chipset from a GUI, reboot and everything just works, boots quickly, and runs smoothly. They even map the command key to the menu as you’d expect, so if you’re like me and you’ve been trained to run keyboard-only by hitting Cmd-Space on the Mac, this same mode of operation will work on Linux Mint with XFCE by default with no configuration.

Coming back to GalliumOS, the situation is similar. Boot time is quick, desktop operation is fluid, and the driver support is sorted right out of the box with no configuration. Similar to Linux Mint on Mac, the Chromebook’s search key (where caps lock lives on most machines) is mapped to the menu so that merely hitting that key and typing a search gets you the behavior you’d expect from hitting Cmd-Space on the mac.


I’ve been running GalliumOS and Linux Mint 18 XFCE builds on Macbook Pro and Chromebook for a week and I’ve yet to find a bug in my stack of software development software including atom, chromium, git, python 3.5 (installed by default - yay), or anything else. The Chromebook and the Macbook Pro boot quickly, run smoothly, have complete driver and peripheral support, including keyboard function keys, and suspend and hibernate work as designed.

For some number of years we’ve been hearing about the year of Linux on the desktop, but I think that was premature. It took Linux a decade or two to sort most of its driver and usability problems. But now that those are mostly sorted, the desktop has long been relegated to the junk yard. No, the desktop is really not a viable platform anymore.

It makes me happy to say that I’m not alone in this view.

Thankfully, 2016 is the year of Linux on the Laptop, even if it’s not a WinTel laptop!