Magic Flip
April 13, 2026 · View on GitHub
A lightweight macOS menu bar app that flips the touch surface orientation of an Apple Magic Trackpad used upside down.
If you prefer using your Magic Trackpad flipped over (for ergonomics, comfort, or just because), this app rotates the trackpad's touch surface 180° so cursor movements match the physical orientation.
Features
- Menu bar app — runs quietly in the background with a simple toggle
- Device-specific — only inverts the external Magic Trackpad; your built-in trackpad and mouse work normally
- Hot-plug support — detects when you connect or disconnect the Magic Trackpad
- Launch at Login — optional autostart
- Native UI — uses the standard macOS 26 (Tahoe) menu bar popover style
Requirements
- macOS 26 (Tahoe) or later
- Apple Magic Trackpad (any generation, USB or Bluetooth)
- App sandbox must be disabled (the app uses a private framework and IOKit)
How It Works
The app uses IOHIDManager to detect your external Magic Trackpad by vendor ID and product name. When a trackpad is found, it dynamically loads Apple's private MultitouchSupport.framework and calls MTDeviceSetSurfaceOrientation to rotate the touch surface 180°. This makes the trackpad interpret touches as if it were right-side up, so cursor movement, scrolling, and gestures all work naturally. The orientation is restored to normal when you disable inversion or quit the app.
Other input devices (built-in trackpad, mice) are unaffected.
Installation
- Download
MagicFlip.dmgfrom the latest release - Open the DMG and drag
MagicFlip.appto the/Applicationsfolder - Eject the disk image
The app and DMG are not signed or notarized, so macOS Gatekeeper will block them. To allow the app to run:
- Open the app by right-clicking (or Control-clicking)
MagicFlip.appin/Applicationsand choosing Open - If you see a warning that the app "can't be opened", go to System Settings > Privacy & Security, scroll down, and click Open Anyway next to the MagicFlip message
- You may be prompted for your password or Touch ID — confirm to allow the app
Alternatively, remove the quarantine attribute before launching:
xattr -d com.apple.quarantine /Applications/MagicFlip.app
You only need to do this once. After the first successful launch, macOS will remember your choice.
- The app will appear in your menu bar — toggle Invert Trackpad to enable
- Toggle Launch at Login if you want inversion to stay on across reboots
Building from Source
The app sandbox is disabled (required for dlopen of the private MultitouchSupport.framework and IOHIDManager access), so this app cannot be distributed via the Mac App Store.
Command Line
Build a Release binary into ./build and copy it to Applications:
xcodebuild -project MagicFlip.xcodeproj -scheme MagicFlip -configuration Release SYMROOT=./build build
cp -r ./build/Release/MagicFlip.app /Applications/
Xcode GUI
- Open
MagicFlip.xcodeprojin Xcode 26+ - Product > Scheme > Edit Scheme…, select Run on the left, change Build Configuration to Release, close
- Press Cmd+B to build
- In the Project Navigator, expand MagicFlip > Products, right-click MagicFlip and choose Show in Finder, then drag it to
/Applications
Creating a DMG
After building the Release .app (via either method above), create a distributable disk image:
./create-dmg.sh
This produces MagicFlip.dmg with a drag-to-Applications layout. Share this file for easy installation.
Private Framework Notice
This app dynamically loads Apple's private MultitouchSupport.framework at runtime. Because it is a private API, it could break with future macOS updates. No Accessibility or Input Monitoring permissions are required.
Note on Device Filtering
The app identifies the external Magic Trackpad using a combination of:
- Apple vendor ID (
0x05acUSB /0x004cBluetooth) - Product name containing "Trackpad"
- Excluding devices with the
kIOHIDBuiltInKeyflag
If inversion isn't working, make sure your trackpad is detected (shown in the popover).
License
MIT — see LICENSE for details.