The Apple Macintosh is more than 40 years old, but it's still going strong, and its recent success was significant enough that Apple CEO Tim Cook called it out during the company’s earnings call last week. In particular, Cook credited the new low-cost MacBook Neo, which Apple says is attracting a fair number of new Mac buyers rather than simply prompting upgrades from previous customers.
But Cook also noted that the Mac’s success was being held back somewhat by “supply constraints… on several Mac models,” which was exacerbated by “less flexibility in the supply chain” than Apple was used to; the company also expects to pay “significantly higher” prices for RAM than it has been so far. In other words, shortages of everything from RAM to storage to advanced chipmaking capacity are making it harder for Apple to produce as many Macs as it can sell.
Sites that track Apple news currently post multiple times a month about Mac shortages, noting each time Apple removes a Mac mini model from its online store and religiously reporting on shipping estimates for the MacBook Neo. But because those spot checks only account for Apple’s inventory at a moment in time, I did what I sometimes do when I want to back up vibes with empirical data: I made a big spreadsheet (the full thing is here; only a few representative snippets appear in the article below).
If you’ve ever installed Ubuntu or another Linux distro on your MacBook, MacBook Pro, or iMac, you’ve probably run into one persistent frustration: the Apple Magic Mouse and Trackpad just don’t behave like they do when running macOS, but normal ‘Windows” mice work fine.
After pairing via Bluetooth, you might notice that the right-click (secondary click) doesn’t work, the left-click only registers on the far edge, and scrolling or gestures are unreliable at best, if not have a complete mind of their own!
For devices that feel magical on macOS, they can seem downright clunky on Linux. But don’t worry there s a clean, open source solution that fixes everything, its called ‘Magic Mouse HID driver for Linux’ by Ricardo Rodrigues. This lightweight driver re-enables full Apple-style functionality for both the Magic Mouse and the Magic Trackpad under Ubuntu all in under ten minutes.
The Problem: Apple Magic Mouse on Ubuntu
When you connect your Magic Mouse or Trackpad to Ubuntu, it’s recognized as a generic HID (Human Interface Device). The Linux kernel includes a basic driver (hid_magicmouse), but it lacks the full Apple-specific support you’re used to, as you’ll know from using a Windows mouse with macOS there is something different about these magic mice and that’s why they don’t work like they should. It’s frustrating because the Magic Mouse hardware itself is excellent it just needs the right software layer.
Typical issues include:
Right-click not working (or only works occasionally)
Left-click zones inconsistent, requiring firm presses on the far left side
No smooth scrolling or gestures
Battery percentage not reported correctly
Overall lag or stutter when using Bluetooth
The Solution: magicmouse-hid Driver
That’s where the Linux-Magic-Trackpad-2-Driver project comes in. Developer Ricardo E. P. Rodrigues created a modern replacement for the kernel’s built-in driver. His project, hosted on GitHub as Linux-Magic-Trackpad-2-Driver, adds proper gesture handling, right-click recognition, and full multitouch support for:
Apple Magic Mouse (1st & 2nd Gen)
Apple Magic Trackpad (1st & 2nd Gen)
The driver is distributed as a DKMS module (Dynamic Kernel Module Support), which means it automatically rebuilds itself whenever Ubuntu updates your kernel no need to reinstall it every time you upgrade.
How to Install the Magic Mouse / Trackpad Driver on Ubuntu
The process is simple and safe. It doesn’t modify your kernel permanently and can be uninstalled easily.
Step-by-Step Guide
Open your terminal and run the following commands one by one:
# 1. Install DKMS and Git
sudo apt install dkms git -y
# 2. Clone the repository
git clone https://github.com/RicardoEPRodrigues/Linux-Magic-Trackpad-2-Driver.git
# 3. Move into the folder
cd Linux-Magic-Trackpad-2-Driver
# 4. Make the installer executable
chmod u+x install.sh
# 5. Install the driver
sudo ./install.sh
When the installer completes, reboot your machine or reload the module manually:
sudo modprobe hid_magicmouse
What Gets Fixed
Feature
Before
After Installing Driver
Right-Click
Broken or inconsistent
Works perfectly
Left-Click
Only far left edge
Works across full surface
Scrolling
Jerky, slow
Smooth, natural
Gestures
Limited or none
Supported (depending on model)
Battery
Not shown
Reported accurately in system settings
How to Uninstall
If you ever want to remove the driver, it’s easy:
cd Linux-Magic-Trackpad-2-Driver
./uninstall.sh
When I first paired my Apple Magic Mouse with Ubuntu on a MacBook Pro, it was nearly unusable. Right-click didn’t work, scrolling was jerky, and simple navigation felt broken.
After discovering Ricardo Rodrigues’s magicmouse-hid driver, the difference was night and day. It’s one of those small tweaks that completely changes your Linux experience on Apple hardware, we’re slowly getting to the point everything just works the way it should. (Shame the graphics card couldn’t hey!!), We’re also getting updates and security patches running modern Linux which includes a modern browser too.
If you’re running Ubuntu (or any Linux distro) on a Mac, this is an essential setup step. With just a few terminal commands, your Magic Mouse and Trackpad regain their “magic.”
As part of my never-ending mission to give my Ubuntu-powered MacBook Pro just a little more of that macOS polish without losing the Linux soul underneath I recently realised I was missing something very small but very useful: the “shake to find the cursor” feature.
If you’ve used macOS for any amount of time, you know the one. Lose your cursor across multiple screens? Give the mouse or trackpad a quick wiggle and the pointer grows dramatically, making it unmissable.
It turns out… I use that gesture a lot. And after moving my MacBook Pro fully onto Ubuntu (complete with one or two external monitors), I kept instinctively shaking the cursor only for nothing to happen. Not very Apple Geek friendly.
But good news: Linux has caught up.
Two GNOME extensions now bring the macOS cursor-jiggle behaviour straight to Ubuntu:
Jiggle → For older Ubuntu releases
Wiggle → For Ubuntu 24.04 LTS and newer
And honestly? They work brilliantly.
Why This Matters (Especially on Multi-Monitor Setups)
Lose your cursor on a dual-monitor desk setup?
Big hi-res display?
Dark wallpapers or themes?
It happens a lot more than you think.
On macOS, shaking the cursor to enlarge it is second nature you barely think about it. Using Ubuntu daily made me realise how ingrained that small UX delight had become. Re-adding it makes Ubuntu feel instantly more fluid and familiar on Mac hardware.
Open Extensions (or GNOME Tweaks) to enable/configure it
Now give your trackpad or mouse a shake… and enjoy that familiar macOS moment.
This tiny tweak genuinely improves daily workflow especially when your MacBook running Ubuntu is hooked up to multiple external displays. It’s one of those micro-interactions you didn’t realise you’d miss until it’s gone.
If you’re aiming to blend the best bits of macOS with the power and flexibility of Linux (like I do here on The Apple Geek), Wiggle is an absolute must-install.
If you’ve ever tried running Ubuntu on a MacBook, you’ll know the keyboard just feels… wrong. Command keys don’t do what you expect, Option keys aren’t Alt, and all those macOS shortcuts you love are suddenly broken. Add in the trackpad quirks and F-key frustrations, and you quickly realize Linux doesn’t magically turn your MacBook into a perfect clone of macOS at least, not out of the box.
But here’s the good news: with a few small tweaks, you can have all the macOS behaviors you expect, while keeping the full power and customizability of Ubuntu. This post is your ultimate guide.
Keyboard: Command, Option, Control Fixed
By default, Ubuntu treats the MacBook keyboard like any other PC. That means:
⌘ (Command) acts as Super (used for GNOME shortcuts, but not Ctrl-like shortcuts)
⌥ (Option) acts as Alt, which is okay
Ctrl stays where it is, but your muscle memory wants Command
We fix this with GNOME Tweaks or a simple command-line setup.
Step 1: Install GNOME Tweaks
sudo apt install gnome-tweaks
Open Tweaks, go to Keyboard & Mouse → Additional Layout Options.
Swap Ctrl and Win: Makes ⌘ behave like Ctrl
Alt/Win swap (optional): Makes ⌥ behave as Alt
Step 2: Apply via CLI (Wayland-safe)
gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:swap_lwin_lctl','altwin:swap_lalt_lwin']"
Check with:
gsettings get org.gnome.desktop.input-sources xkb-options
Step 3: Make ⌘+Space Spotlight-style
gsettings set org.gnome.settings-daemon.plugins.media-keys search "['space']"
Press ⌘+Space instant search.
Step 4: Optional: ⌘ alone → Activities Overview
gsettings set org.gnome.mutter overlay-key 'Super_L'
Now pressing Command alone opens Activities, just like pressing Mission Control on macOS.
Trackpad Tweaks
MacBook trackpads are amazing hardware, but Linux doesn’t always get it right out of the box. Here’s how to fix it:
With these tweaks, Ubuntu feels so much more like macOS on your MacBook. Shortcuts behave as expected, trackpad gestures are natural, F-keys work without fighting, and the system even looks familiar.
It’s a blend of the power and flexibility of Linux with the polish and muscle memory of macOS. For anyone using a MacBook as their main Linux machine, these tweaks are essential and the best part? They’re fully reversible if you want to experiment.
I’d already disabled the faulty AMD GPU at the firmware level and forced Ubuntu to use the integrated Intel HD 3000 graphics. That works brilliantly for most things until you need an external monitor.
The mini DisplayPort on these models is wired only to the discrete GPU, which means once the AMD chip is disabled, the port goes dead. No amount of software trickery will bring it back to life the connection simply doesn’t exist anymore.
But that’s not the end of the road. Thanks to a simple USB DisplayLink adapter and a bit of Linux know-how, we can get full dual-monitor functionality again no soldering, no GPU reflowing, and no magic smoke.
The Problem
MacBook Pro model: 2011 15-inch (MacBookPro8,2)
Issue: Discrete AMD GPU failure
Workaround: Disable AMD GPU, use Intel graphics only
Result: No working mini DisplayPort
For years, that meant living with just the internal display. But when I installed Ubuntu 24.04 LTS, I discovered a new path forward DisplayLink.
The Solution: DisplayLink USB Graphics
DisplayLink adapters work by compressing the display output over USB and decoding it on the adapter’s built-in chip, then sending it to your monitor via HDMI, DVI, or DisplayPort.
I used the StarTech USB32HDPRO, though almost any DisplayLink-based USB 3.0 adapter should work just as well.
What makes DisplayLink perfect for this situation is that it doesn’t depend on the GPU hardware routes inside the MacBook. It just needs a USB port and those are still alive and well.
Installing the DisplayLink Driver on Ubuntu 24.04
Plugging in the adapter won’t immediately do anything. You’ll need to install the official DisplayLink Linux driver.
Step 1Download the Driver
Go to DisplayLink’s official driver page and grab the latest .zip package for Ubuntu.
Extract it, then in your terminal run:
cd ~/Downloads/DisplayLink* sudo ./displaylink-installer.sh install
When it finishes, reboot your MacBook:
sudo reboot
Step 2 Plug In the Adapter
After rebooting, plug your DisplayLink adapter into a USB 3.0 port and connect your external display.
If everything’s gone well, your external monitor should come to life but it’ll probably mirror your internal screen by default. Let’s fix that.
Step 3 Automatically Extend the Display
To make Ubuntu automatically detect and extend your DisplayLink screen every time it’s plugged in (or when you log in), we can use a small shell script.
Create a new file:
sudo nano /usr/local/bin/displaylink-autosetup.sh
Paste this inside:
#!/bin/bash # displaylink-autosetup.sh — Automatically extend desktop when DisplayLink screen is detected sleep 8 # Wait a few seconds for the DisplayLink driver to load MAIN_DISPLAY=$(xrandr --query | grep " connected" | grep -v "HDMI-" | awk '{ print $1 }' | head -n 1) DL_DISPLAY=$(xrandr --query | grep " connected" | grep "HDMI-" | awk '{ print $1 }' | head -n 1) if [ -n "$DL_DISPLAY" ] && [ -n "$MAIN_DISPLAY" ]; then xrandr --output "$DL_DISPLAY" --auto --right-of "$MAIN_DISPLAY" echo "DisplayLink screen ($DL_DISPLAY) extended to the right of $MAIN_DISPLAY" else echo "No DisplayLink display detected or main display missing." fi
Save and exit (Ctrl + O, Enter, Ctrl + X), then make it executable:
Now whenever your MacBook wakes up, it’ll re-detect the DisplayLink monitor and extend it automatically.
The Result
After this setup:
Ubuntu boots using the Intel integrated GPU only
The DisplayLink adapter provides a second monitor via USB
The display layout automatically restores at login or wake
No reliance on the failed AMD dGPU
Performance is perfectly usable for web, office work, and even lightweight development. You won’t be gaming or editing 4K video on it but for daily use, it’s an elegant fix that keeps these old machines alive and productive.
Final Thoughts
This 2011 MacBook Pro might have been written off years ago by Apple, but with Ubuntu and a little Linux ingenuity, it’s still a fully functional laptop in 2025 complete with dual monitors.
In true Apple Geek fashion, this is about more than saving an old Mac it’s about understanding and adapting the hardware to keep it useful long after the official support has ended.
If you’re following this series, next time I’ll show how to fine-tune power management and cooling on these Intel-only 2011 models to make them run cooler and quieter under Linux.