The MacBook cost £90 on eBay. It was listed as faulty. The fault was a failed SSD, soldered to the logic board, which on the MacBook 12” means the logic board is the fault. A replacement board was £59. Total: £149.
Why this machine
The MacBook 12” is the smallest laptop Apple ever made with a Retina display. The screen is genuinely good. For a lightweight Linux workstation the form factor is hard to beat — small, light, and the display makes everything look right.
The risk is the keyboard. Apple’s first-generation butterfly mechanism has a well-documented failure rate. Dust gets in, keys stop registering, and the fix on this generation is a full keyboard replacement. Buying a used one is a calculated gamble. The keyboard on this unit works. That could change.
The repair is not complicated in theory. In practice it involves removing the battery, disconnecting the trackpad, keyboard, display, and speaker cables, and then replacing the board. The cables are flat ribbon connectors, fragile enough that looking at them wrong feels like a risk. Nothing broke. The machine booted first time.
Why the MacBook works
The MacBook 12” is a fixed hardware target. Every unit shipped with the same internals. The Linux community has had years to document every quirk and write every workaround. Installing Arch on a MacBook 12” in 2026 means inheriting that work.
Most things work without intervention. WiFi, display, USB-C, trackpad, camera. The keyboard needs one change.
The keyboard
By default the function keys are primary and the media keys (brightness, volume) require holding Fn. The applespi kernel module controls this via a parameter called fnmode. Setting it to 0 flips the behaviour so media keys are primary.
echo 0 | sudo tee /sys/module/applespi/parameters/fnmode
echo 'options applespi fnmode=0' | sudo tee /etc/modprobe.d/applespi.confThe brightness and volume keys then work as expected in Hyprland with the default multimedia keybinds. Keyboard backlight is a separate device (spi::kbd_backlight) and needs its own binds pointing at brightnessctl.
The hash key is a minor footnote. On a US layout, Alt+3 should produce a hash. Hyprland’s config parser treats hash as a comment character, so wtype ‘#’ silently does nothing. The fix is to avoid typing a hash in the config at all: bind Alt+3 to sendshortcut Shift+3, which produces a hash via the key rather than the config.
The power button
The power button shuts the machine down immediately. That is the logind default and it is too easy to hit by accident on a laptop. Two changes: tell logind to ignore the power button, then bind Super+Power to log out and Super+Shift+Power to shut down in Hyprland.
What does not work
The built-in speakers are silent. The codec is a Cirrus Logic CS4208. The driver initialises the headphone jack correctly but does not send the vendor-specific sequence needed to enable the internal speaker amplifier. This sequence is not documented. It would need to be reverse-engineered from the macOS driver by someone with the hardware and the motivation. The headphone jack works fine.
What it is
A lightweight Linux workstation for £149. Hyprland runs well on the Intel integrated graphics. The battery holds a charge. The keyboard feels good. The machine is stable in a way the desktop experiment was not, because the hardware is known and the problems have already been solved by someone else.
The speakers are a gap. Everything else works.