I recently installed Ubuntu MATE on my 11 year old Macbook Air as a way of keeping it running, given that Apple are no longer supporting the device. My idea was to replace it with Linux, while preserving the look & feel of the Mac as much as possible.
Below are my notes of what I needed to do. The exact model is MacBookAir6,2 (MacBook Air (13-inch, Early 2014)), but I think the process should be pretty similar for other MacBooks made around the same time.
hi MATE
I settled on an Ubuntu variant because:
- it's familiar to me
- Canonical do a reasonable job at making things usable
- it's easy to find help online.
I chose Ubuntu MATE1 over basic Ubuntu, as I liked how you can configure MATE to look a lot like MacOS.
The install process
Installing linux on this device was much like installing it on any device, except for some issues with WiFi. I cobbled together these instructions from various blog posts such as this one and this one:
- Before doing anything, back up your files.
- Make a bootable USB stick with Linux on it.
- Boot from the USB. The WiFi didn't work for me, but I fixed that later. The keyboard and trackpad worked fine. At this point I also tested that the SSD was detected ok.
- Proceed with the install. I made the mistake of tethering to my phone at this stage, which caused the installer to fail part way through. But it worked fine when I switched off the wifi.
- After booting into Linux, you need to tether to a phone via USB, then install the proprietary broadcom drivers so that you can connect to WiFi. Run
sudo apt install broadcom-sta-common broadcom-sta-dkms
then restart. - Run
sudo apt install mbpfan
to ensure the CPU fan works. - Run
sudo apt install ubuntu-restricted-extras
to install proprietary stuff. - Run
sudo apt update && sudo apt upgrade
to update all the packages.
Colour profiles
I didn't seem to need this for the laptop's display but if you have an external monitor you can optionally restore the colour profile from an .icc file.
Brightness buttons and backlights
On MacOS, the F5, F6 buttons affected screen brightness, but in MATE only the F1, F2 do screen brightness, and F5, F6 manage the keyboard backlight brightness. This confused me a lot but ultimately it all works.
Info from the Mactel team in 2015 mentioned needing a custom kernel module for the backlight but this is no longer accurate.
Don't set the acpi_backlight
kernel parameter. I found some older info recommending setting this to video or something but this broke the brightness control for me. More info on backlight settings.
Webcam issue
The webcam didn't work out of the box. I got it working using by compiling the facetimehd kernel module.
Tweaking things
MATE comes with a tool called Mate Tweak. Under "Panel", select the Cupertino layout and enable the dock for a Mac-like experience.
Customise the dock in "Plank preferences". I made the icons bigger. If you want to get rid of an icon that doesn't have a "keep in dock" checkbox, you can click and drag it out of the dock to remove it.
You can change the colour scheme in the "Appearance" app. I switched to the dark variant of the MATE default theme.
In "Keyboard preferences", the layout should match your Locale, e.g. "English (UK)". The "Keyboard model" in my case is "MacBook/MacBook Pro (intl)". Minor annoyance: on UK MacBooks, the "#" is the third symbol on the "3" key. Normally to type it you use the left alt, but on Linux you have to use the right alt.
Also on the Layouts tab is an "Options..." button. This contains a lot of useful key remapping features. Under "Alt and Win behaviour" you can select "Ctrl is mapped to Win and the usual Ctrl". This is the best way I've found of making Mac-style Cmd+C, Cmd+V etc shortcuts work on Linux. Just bear in mind:
- It will no longer be possible to type the "Super" key, which breaks some default shortcuts2.
- You can't use it for copying from a terminal, because Ctrl+C will still send the ^C byte to trigger a SIGINT. I configured Gnome terminal to use Ctrl+Shift+C (Cmd+Shift+C) for Copy, and Ctrl+V (Ctrl+Shift+V) for Paste3.
I also used "Ibus Preferences" to configure a second input method, and I use Ctrl + Space as the key to toggle them.
mDNS search domain issue
Out of the box I couldn't use shortnames to ssh to other machines on my local network, because the search domain was set to "home", where previously I was using "local".
I fixed this with resolvectl domain wlp3s0 local
, where wlp3s0
is the interface name.
Linux touchpad drivers suck
The touchpad works out of the box, but the usability is rubbish compared to MacOS. Ubuntu MATE uses libinput, which has an intentionally limited feature set. It doesn't have "momentum scrolling" or smooth scrolling. The older Synaptics driver is a lot more configurable but it's no longer maintained. I haven't tried using it myself yet but I'm curious if it's worth tinkering with to get a better touchpad experience.
-
If your laptop is even lower spec than mine, you might consider the Xubuntu or Lubuntu flavours, which have much lower minimum requirements. ↩
-
If you want to keep one of the command keys as super, and map the other to control, you can instead use xmodmap to do the remapping, but this is very confusing to configure. ↩
-
I think it should be possible to remap the key combination that the terminal emulator uses for ^C (e.g. to Ctrl+Shift+C), but I couldn't find a way to do this in Gnome terminal. ↩
Thanks for sharing that, considering something similar for my air 2015.
Genuinely curious, why couldn’t you use the older macOS? Any blocking app behavior?
As a result, how performant the new system and what do you use it for (if I may ask)?
I was sure airs don’t have cpu fans, do they?