Note: There's a compact version (TL;DR) of this guide at the end.
Part 1: Intro and distro
Intro
I had a couple of Macs that weren't getting security updates any longer, but they were still nice machines. It would have been a pity to stop using them when they were perfectly fine – except for being the gaping security holes that they would increasingly represent in my home network, of course. But what if they ran Linux…
So I gave it a try. There was a certain amount of fiddling, learning and getting help involved, so I figured I should collect everything in a guide for anyone else in my situation.
So if you're like me, sitting on an old Mac (or two) that you want to keep using and you have no idea how Linux works or how to get started with it, this guide is for you.
Finding the right Linux
There are lots of different Linuxes – called "distros" – and finding the right one can be a real challenge. I'm not going to go into detail about how to find the right one, because quite frankly, I wouldn't know what I'm talking about. But skipping ahead for a bit: I landed on Fedora with the GNOME shell. The main selling points for me were:
– Fedora and GNOME seems to be kind of a huge thing in the Linux community, being an off-shoot of Red Hat and being supported by the Red Hat corporation with their actual engineers. Thus, I'm expecting it to be one of the more polished Linuxes out there.
– GNOME has something called "Human Interface Guidelines", which is what Apple used to have back in the day. Thus, I'm expecting it to be quite user-friendly and even Mac-like in some respects.
You can read more about Fedora workstation, which is an official Fedora + GNOME combo, here: https://www.fedoraproject.org/workstation/
Another strong contender was Mint Linux, which the Internet tells me works out-of-the-box on old Macs, unlike Fedora, which needs some additional fiddling with in order to get Wi-Fi to work properly, as you'll see later on. However, Mint is not based on Fedora, and it runs another graphical user interface called Cinnamon. I'm sure that's nice as well, but in the end, I wanted to give Fedora and GNOME a try. As I've made my choice, since that's what I can contribute with, that's what you'll find here.
Part 2: Preparations
Physical location
The very first thing you should plan ahead for is being able to provide a wired network connection to your old Mac immediately after Linux is installed, because we need to have Internet access in Linux before we get Wi-Fi to work. You could connect it directly to your router, or you could have another Mac share its Internet connection with it using an Ethernet cable. It could also used shared Internet from a mobile phone via USB (or Lightning/USB), which is called tethering. Either way, make sure you'll be set up so that's possible, when the time comes.
Backups and a bit of cleaning
The next thing you should do is make sure that everything on your old Mac is backed up properly. If something goes wrong, you may lose everything on there. So make sure you're fine if you accidentally wipe your entire hard drive. We'll try to avoid it, though.
After having backed up everything you need, it's time to make some extra space for Linux. Delete stuff until you have at least 40 GB of free disk space. You've backed up everything, right? Then it won't matter much that you're deleting it. Just trash stuff until you have enough space for Linux.
Making room for a Linux disk partitions (purging purgable space)
If you're like me and not ready to turn your entire Mac into a Linux computer, you'll want to create a separate partition for Linux, but keep macOS, just in case. So open up Disk Utility in macOS (found in the Utilities folder in your Applications folder) and do that.
Huh, what? You just trashed a lot of files and Finder tells you that you have plenty of free space, but Disk Utility claims there's a lot less space available for a new partition? What the heck?
So it turns out that macOS has something called "purgable space", which is mostly Time Machine snapshots. Finder doesn't count them when reporting free disk space (because macOS will delete them if needed), but Disk Utility won't let you overwrite them with another partition. So we need to free up that purgable space somehow. (If, however, you've never configured Time Machine on your Mac, you'll probably see that Finder and Disk Utility agree on the amount of available space. In that case, just skip to the next heading, "Creating a partition in Disk Utility".)
This is where a really neat trick comes in (thanks to neededaname1 on Reddit: https://www.reddit.com/r/mac/comments/nvzy1v/purgeable_space_wont_go_away_heres_what_worked/). Just open Boot Camp Assistant (in the Utilities folder in your Application folder) and start the workflow for installing Windows onto your Mac. The very first thing that happens is that it deletes all the hidden Time Machine snapshots and frees up your purgable space. After that, just quit Boot Camp Assistant. (This only works on Intel Macs, but this guide is about Linux on old unsupported Macs, so you're most likely on an Intel Mac anyway.)
Now it's time to head back to Disk Utility and find that the purgable space is free and you can create the partition you intended. If it's not, just do a quick reboot of the Mac, and it should be fine afterwards.
Creating a partition in Disk Utility
Now it's time to create the partition that Linux will be installed on. In Disk Utility, you'll find two separate concepts of different disk shares: partitions and volumes. A partition is kind of a fixed amount of the physical hard drive that acts as a separate hard drive for all intents and purposes. A volume, on the other hand, is a separate share of a partition that is flexible in size, sharing its space with other volumes on the same partition. (The technical details may be a bit off here because I'm no expert, but I think this is a handy way to think about it for complete noobs like me.) You want to create a separate partition. So create a new partition.
A tip is to avoid a perfect 50 % split between the macOS partition and Linux partition because you'll want to recognise it easily later on without seeing the name you give to it. If they're not the same size, you can easily tell which one is which. If you still want a perfect split, you should note the internal name of the partition so that you'll be able to identify it later on.
It doesn't really matter how you format the partition, because Linux will be formatting it again later on. So just choose Apple File System (APFS) or whatever. Then choose to apply the changes and wait. Depending on your hard drive, this partitioning could take several hours. So just make sure your Mac has a stable power supply and get started on the next item on a different computer. (Or wait until it's all done, if you don't have any other computer.)
Creating a bootable Fedora USB drive
The last item of preparation you need to do is creating the bootable USB drive that you're going to install Linux off of.
Go to this page: https://www.fedoraproject.org/workstation/download
… and download Fedora Media Writer. Follow the instruction on the page to create a bootable USB drive. At the time of writing, you may need a newer computer than the one you're going to install Linux on, if your Mac is stuck on a macOS version earlier than 13.
Part 3: Installation
Installing Fedora Workstation
Plug in the bootable USB drive into your old Mac and do a reboot. Hold down the Option (alt) key while booting in order to choose which drive to boot from. Choose the one labelled EFI Boot. Now your Mac is going to boot into the live version of Fedora Workstation that's on the USB drive. Choose "Start Fedora-Workstation-Live" when prompted, or choose to test the installation if you want to make sure the bootable USB drive has been installed correctly before beginning.
You'll be greeted with a welcome window asking you if you want to Install Fedora Linux (from the USB drive) or try it running from the USB drive first. Choose "Not Now", because you'll have to do a little bit of preparation first.
You probably saw something Dock-like at the bottom of the screen that disappeared when you clicked "Not Now". It's called the Dash, and if you press the Command key it will reappear. (The Command key maps to the Super key on Fedora. If you have a Windows keyboard, the Windows key will map to the Super key).
Press the Command key to see the Dash and then the nine-dot icon to the right of the Dash to see the bundled apps that aren't otherwise pinned to the Dash. Go to the System group, and open the Disks app.
In the Disks app, choose the hard drive that you recently formatted. Choose the partition that you want to install Fedora on, and click the minus button to the right. This will change the partition from an Apple-formatted partition that Fedora can't use to free space that Fedora can format. The Disks app will tell you that everything on the partition will be lost, which is fine if you've chosen the correct, empty partition, and kind of a bummer if you accidentally choose your Mac partition and end up erasing all your data. (You did actually back up everything, right?) Click "Delete" when prompted and then reconfirm by clicking "Authenticate".
Exit the Disks app, press the Command key (Super key now, remember?), and then click the icon labelled "Install to Hard Drive".
The installation wizard will ask you for language and keyboard layout. You may choose whatever you prefer here. Some languages even have Mac-like layouts if the languages usually have different Windows and Mac layouts. Note, though, that you can only have a single keyboard layout while installing, so remove English if you choose something else. (You can add additional ones later on.)
When you're satisfied, click Next, and you'll be asked how you want to install. Choose "Share disk with other operating system" and click Next.
You may choose if you want to encrypt your data. That's entirely up to you. Needless to say, if you choose to encrypt it, make sure you remember your password. Choose what you prefer, and click Next.
Double-check that everything looks okay, and click Install.
Wait until Fedora is installed. This will likely take a while. When everything's installed, click "Exit to live desktop" and then reboot the system. You'll find the reboot ("Restart") option in the top-right corner of the screen, under the Power or battery icon, and then under the subsequent Power icon.
The machine will reboot (and then ask you for your password if you encrypted the drive). Then, you'll be taken through the setup wizard. Complete it, making sure to turn on external sources when prompted. You'll now have a somewhat working Linux OS installed on your Mac!
Connecting to the Internet
At this point, the machine needs an internet connection. Wi-Fi isn't working yet, so you'll have two options:
1: Provide Internet via an Ethernet cable from your router or another computer: If you're providing Internet from another Mac, go to the System settings and enable Internet Sharing via Ethernet.
- Provide internet via a mobile phone: This involves using a USB cable (or Lighting to USB cable) between the mobile phone and Linux machine and sharing Internet from the phone to the computer. You may also use Bluetooth, but that could be considerably slower. If you're using an iPhone, you just need to plug it in, unlock the screen, and accept the Internet usage request.
Installing updates
Open the app called App Center. You'll find it by pressing the Super key (Coommand key) to bring up the Dash and then clicking the icon in the middle that looks like a shopping bag with geometric figures. You may also click the nine-dot icon and search for it. When you've found it, look for system updates. Install all updates, and then reboot.
Rebooting is going to take some time while Fedora installs updates.
Getting Wi-Fi to work
Fedora doesn't include the drivers necessary to get Wi-Fi working on a Mac out-of-the-box (because it's a proprietary software, which Fedora doesn't include by principle). However, it's easily installed, so you'll do that now.
First, you need to install two repositories called RPM Fusion Free and RPM Fusion Non-Free. Install both, first the Free version and then the Non-Free version. Do that by following the guide found on this page: https://docs.fedoraproject.org/en-US/quick-docs/rpmfusion-setup/
Then, you need to install something called akmod-wl, which is a system that manages kernel modules. It allows Fedora to automatically rebuild the kernel module when a new kernel is booted.
Press the Super key (Command key), go to the apps via the nine-dot icon and open Terminal. Then type:
sudo dnf install akmod-wl
It's going to prompt you a couple of times during the process. Enter "y" (without the quotes) and press Enter. Eventually, it will tell you that installation is complete.
Now, wait for at least 10 minutes and then reboot. The 10 minutes will give the system time to configure a kernel update in the background before the reboot. (You'll remember that you'll find the Restart option in the top-right corner of the screen, under the Power or battery icon.)
You may find guides telling you to install broadcom-wl. Don't. It's going to mess up your wired connection and you'll have to start all over. You just need RPM Fusion Free, and RPM Fusion Non-Free and akmod-wl (in that order).
That's the basics!
Now you should have a fully functional Fedora Workstation Linux running on your old Mac. If you want the "vanilla" Fedora GNOME experience, you may stop reading at this point and just start using it. But if you want it to feel more like the Mac you're used to, read on ahead on Part 4.
Part 4: Customisation
Customising shortcuts
Fedora uses Windows-like shortcuts, meaning Ctrl+C for Copy, Ctrl+V for Paste and so on. That can be changed around so that you can use Command+C and Command+V instead.
First, you need to install an app that lets us switch the placement of the Super key (Command key) and Ctrl key. Open the App Center and search for "GNOME Tweaks". Install it, and then open the app.
Go to the Keyboard section and click "Additional Layout Options". Open the group called "Ctrl position" and check the two boxes titled "Swap Left Win with Left Ctrl" and "Swap Right Win with Right Ctrl". Close the window (there's no "Save" button), and the changes take effect immediately.
What's happened is that, technically, the Super key input is now located on the physical Ctrl key, while the Ctrl key input is located on the physical Command key. You'll have to keep that in mind whenever there's a reference to the Super key or Ctrl key from now on.
You've gained some familiar shortcuts, but have messed up a couple of others. That can be fixed, though. Press the Super key (which is now the physical Ctrl key) to bring up the Dash, click the nine-dot icon, and open the Settings app. Go to the Keyboard section and click "View and customise keyboard shortcuts" (on the bottom).
Go through the keyboard shortcuts and prepare for some mental gymnastics: Wherever you see the Super key, it's now located on the physical Ctrl key, and vice versa. Luckily, when rebinding them, you can press the actual physical keys you want to use. For instance, tabbing between apps is bound to Super+Tab, which is physically Ctrl+Tab right now. Find the shortcut in the Navigation group, click it, and press the Command and Tab keys on your keyboard. It will tell you that you attempt to bind it to Ctrl+Tab. Click "Set up", and you'll now be able to use Command+Tab to switch between apps as you're used to from macOS. Go through all the bindings and fix the ones you need to fix.
You can see the standard keyboard shortcuts used in GNOME (that should work everywhere) here: https://developer.gnome.org/hig/reference/keyboard.html. Remember that the Ctrl key input is now located on the physical Command key. As you'll see, that means that the standard Ctrl+Q shortcut for quitting apps, for instance, is bound to Command+Q, as you're used to from macOS. Pretty neat!
Enabling additional characters with the left Option (alt) key
By default, only the right Option (alt) key will let you type additional characters (for example the ß character using Option+S). This mimics the Alt / AltGr difference of Windows keyboards. If you want to use the left Option (alt) key to type these characters, do the following:
Go into GNOME Tweaks, go to the Keyboard section and click "Additional Layout Options". Then find the group called "Key to choose the 3rd level" and check the check box for "Left Alt". Now your left Option key will let you type additional characters.
Making the Dash always visible or pop up (like the macOS Dock)
Open the App Center and search for Extension Manager (by Matthew Jakeman, with a blue puzzle piece icon). Install it and open it. Search for an extension called "Dash to Dock" by michele_g and install it.
If you want the Dash to hide unless you're hovering over it, go back to the installed extensions tab and click the gear icon next to the Dash to Dock extension. Enable "Auto hide" and disable "Dodge windows".
Pinning apps to the Dash and moving them around
You're probably used to having certain apps in the Dock (such as the System Settings app). Find whatever apps you're missing and open them. When they're open, right-click them in the Dash and choose "Pin". You can reorder them by dragging them around, so that the Files app is at the same place where you're used to having Finder, for example.
Enabling expandable folders in list view in Files
By GNOME default, you have to double-click to see a folder's contents. However, it's possible to enable list view, as macOS has:
Open a new window in Files and click the three-dot menu button on the top-right side of the left panel. Then go to settings and enable expandable folders in list view.
While you're at it, you may want to change the size of the icons in list view to small as well, using the options in the top-right corner of the window. That will make the list view look more like macOS (and be more efficient in terms of use of space).
Cosmetic changes
If you want your GNOME to look like macOS and not only function like it, you can apply a couple of cosmetic changes.
The first one is moving the Close window button from the right side of the window to the left and showing the Maximise and Minimise buttons. Go to GNOME Tweaks and then the Windows group. There's a "Buttons on the title menu" category there. Choose to show the Maximise and Minimise buttons and change the placement to the left instead of right.
The second one is the Blur my Shell extension by aunetx. Search for it in Extension Manager and install it. It will blur the top menu line and the Dash, which looks a little bit more like macOS.
Going even further, you can install themes that look like macOS and icon packs that look like macOS. A theme called "WhiteSur" seems to be popular in this respect, but there are a couple of them out there, so I won't recommend a specific one. Search around and find one you like – or stick to GNOME's native visuals.
What about word forward and word backward behaviour?
If you're used to a Mac, you're probably used to skipping to the next word using Alt + Right or Alt + Left. Fedora uses the Windows standard, which is Ctrl + Right and Ctrl + Left (which you've moved to the physical Command key if you've followed the entire guide). Unfortunately, after enabling left Option (alt) as a 3rd level input key, it seems Fedora won't easily let you use the key for keybindings, which means it's hard to find a workaround.
I had to give up getting that to work, but if you do manage to find a way, please share with the community.
Compact version (TL;DR)
Part 1: Intro and distro
You'll be installing Fedora Workstation on an Intel Mac: https://www.fedoraproject.org/workstation/
Part 2: Preparations
- Make sure you'll be able to provide Internet access to your Mac via cable or Bluetooth after install, before you get Wi-Fi up and running.
- Make a backup of everything you would regret losing if you accidentally erase your hard drive.
- Create at least 40 GB of free hard disk space.
- Start Boot Camp Assistant to purge purgable space if you've ever configured Boot Camp on the Mac. Quit after it has deleted Time Machine snapshots.
- Create a new partition in Disk Utility for your Linux install (at least 40 GB). Make sure you can discern it without its macOS name later on, for example by making sure it has an easily recognisable size.
- Create a bootable USB drive using Fedora Media Writer by following the instructions here: https://www.fedoraproject.org/workstation/download
Part 3: Installation
- Reboot the Mac and hold down the Option (alt) key to boot from the bootable USB drive.
- Open the Disks app, select the partition you want Linux on, and click the minus button to erase it.
- Press the Command (Super) button and install Fedora via the icon labelled "Install to Hard Drive". Follow the on-screen prompts and make sure to check the box saying that Fedora should share the disk space with another operating system.
- Provide Internet to the Linux machine directly from your router via an Ethernet cable, via Internet sharing from another computer via an Ethernet cable, or a USB cable from a mobile phone.
- Open App Center and update everything that needs updating.
- Install RPM Fusion Free and RPM Fusion Non-Free (both, in that order) following the instructions here: https://docs.fedoraproject.org/en-US/quick-docs/rpmfusion-setup/
- Install akmod-wl using this prompt in Terminal: sudo dnf install akmod-wl
- Wait at least 10 minutes while an updated kernel is configured, and then reboot. This should give you functioning Wi-Fi.
Part 4: Customisation
- Install GNOME Tweaks and switch the Ctrl and Super (Win) key positions.
- Go to Settings -> Keyboard -> Show and customise shortcuts, and change the shortcuts you use (such as Super+Tab to Ctrl+Tab to switch between apps).
- In GNOME Tweaks, enable additional characters with the left Option (alt) key by checking the left Alt to choose 3rd level characters.
- Install Dash to Dock in Extension Manager to make the Dash appear when hovered over (or always be visible) like in macOS.
- Pin apps to the Dash and move them around to get the same selection as you're used to in the macOS Dock.
- Add cosmetic changes such as moving the window buttons to the left side and showing the Maximise and Minimise buttons in GNOME Tweaks, and adding the Blur my Shell extension and a macOS-like theme like WhiteSur.