
Finally, tap-to-click for your Apple Magic Mouse! (v1.2)
MagicTapper brings trackpad-style tap-to-click functionality to the Apple Magic Mouse. Simply tap the left or right side of your mouse surface to click - no more pressing down the button.
Enable Two-Finger Zoom in the menu bar, then slide both fingers vertically together on the Magic Mouse to send continuous pinch zoom to the app under the pointer. It is off by default and independent of Tap to Click.
The intended default is forward to zoom in and backward to zoom out. Sensitivity Settings… provides reverse direction and sensitivity (0.5×–2.0×). Both fingers must move vertically; a resting second finger, horizontal motion, or a third finger does not start zoom. Lift all fingers before starting another gesture.
Chrome adds a brief startup interval of approximately 24–34 ms per gesture, retaining movement during that interval and then following touch updates continuously. This adjustment is undergoing physical validation. Use bash diagnose-zoom.sh to record local timing if jumps persist.
Safari, Chrome, and Preview images/PDFs are the initial validation targets, not a verified compatibility list. Physical direction calibration and app testing remain pending. Zoom uses undocumented gesture fields; it is not full-screen accessibility zoom and has no keyboard-shortcut fallback. Alternating between mouse and trackpad is supported, but simultaneous scrolling on another device may be intercepted during recognition/zoom.
If the menu reports zoom paused, ordinary scrolling remains available. Check Accessibility access and toggle zoom off/on to retry. See TESTING.md for diagnostics and acceptance checks.
- 🖱️ Tap left side for left-click
- 🖱️ Hold right side (>0.1s) for right-click (anti-false-trigger)
- 🖱️ Double-tap and release for a system double-click
- 🎯 Double-tap, hold, and move to drag & drop
- ⚡ Fast & responsive - optimized for minimal latency
- 🚀 Launch at Login - auto-start with macOS
- 🎛️ Easy toggle on/off from the menu bar
- 🎚️ Adjustable sensitivity - fine-tune tap detection without rebuilding
- 🔒 Privacy-focused - runs entirely on your Mac, no network access
- macOS 13.0 (Ventura) or later
- Apple Magic Mouse (1st or 2nd generation)
- Your Magic Mouse must be connected via Bluetooth
Use the automatic installation script:
# Navigate to the repository
cd /path/to/magictapper
# Run the installer
bash install-final.shThe script will:
- Always rebuild the optimized version from current source
- Stop any running instances
- Backup old version (if exists)
- Install to /Applications
- Guide you through first launch
Run bash test-and-install.sh to rebuild and try the latest source before choosing whether to install. It launches the newly built build/MagicTapper.app and preserves the installed copy until installation is confirmed. Use --build-only to build without launching, or --test-only to launch without installing. quick-test.sh and debug-run.sh also rebuild before launch.
If you prefer manual installation:
# Option 1: Use pre-built binary
cd /path/to/magictapper
cp -r build/MagicTapper.app /Applications/
# Option 2: Build from source
bash build.sh
cp -r build/MagicTapper.app /Applications/- Open MagicTapper from your Applications folder
- You'll see a permission request - click "Open System Settings"
- In Privacy & Security → Accessibility, enable MagicTapper ✓
- If the app is missing, click the + button and add it from
/Applications/MagicTapper.app
- If the app is missing, click the + button and add it from
- Return to MagicTapper – it will begin working automatically once the toggle is on (no relaunch needed)
That's it! You'll see a mouse icon in your menu bar.
- Look for the mouse icon 🖱️ in your menu bar (top-right of screen)
- Tap your Magic Mouse surface:
- Quick tap left side = left-click
- Hold right side (≥0.1s) = right-click (context menu)
- Double-tap and release = double-click
- Double-tap, hold, and move = drag & drop
- You can still click the mouse button normally - tapping is just an additional way to click
Click the mouse icon in your menu bar to access:
- Status - Shows if running or disabled
- Tap to Click - Enable/disable the feature (checkmark shows when enabled)
- Launch at Login - Auto-start with macOS (checkmark when enabled)
- Pointer Speed - Adjust global macOS mouse pointer speed with a live slider
- Sensitivity Settings - Fine-tune tap detection thresholds in a settings window
- Accessibility Instructions - Help with permissions
- About - Version info and features
- Quit - Exit the app
- 💡 Left-click: Quick, light tap on the left side
- 💡 Right-click: Press and hold (>0.1s) on the right side before releasing
- 💡 Double-click: Double-tap quickly and release the second tap without moving
- 💡 Drag & drop: Double-tap quickly, keep finger down on the second tap, then move beyond the tap threshold
- 💡 The dividing line between left/right is roughly at 60% from left
- 💡 To disable temporarily, toggle "Tap to Click" off in menu bar
- 💡 Pointer Speed changes the system-wide mouse speed, so it affects other mice too
To have MagicTapper start automatically when you log in:
- Open System Settings
- Go to General → Login Items
- Click the + button
- Select MagicTapper from your Applications folder
- Click Add
Now MagicTapper will launch every time you start your Mac!
MagicTapper uses Apple's private MultitouchSupport framework to detect touches on your Magic Mouse.
What this means:
- ✅ Safe to use - Many apps use this framework
- ✅ Works great on current macOS versions
- ❌ Not on Mac App Store - Apple doesn't allow private frameworks in the App Store
⚠️ Future updates - Could potentially break in a major macOS update (though unlikely based on history)
Privacy: The app only monitors your Magic Mouse touches. It doesn't collect data, access the internet, or send information anywhere.
MagicTapper requires Accessibility permissions to:
- Detect when you tap the Magic Mouse surface
- Send click events to your Mac
These permissions are granted by you in System Settings and can be revoked at any time. The app cannot function without them.
Check permissions:
- Go to System Settings → Privacy & Security → Accessibility
- Make sure MagicTapper is in the list and checked ✓
- If it disappeared (after rebuilding), click + and re-add
/Applications/MagicTapper.app - Toggle the checkbox off/on once — the app will detect the change immediately
Verify Magic Mouse:
- Go to System Settings → Bluetooth
- Your Magic Mouse should show as "Connected"
- Try moving the mouse to confirm it's working
"App is damaged" error:
- This is normal for apps not from the App Store
- Right-click MagicTapper → Open → Click Open again in the dialog
- Or: Go to System Settings → Privacy & Security and click Open Anyway
If taps are too sensitive or not sensitive enough, tune them in the app — no rebuild required:
- Click the MagicTapper icon in the menu bar
- Open Sensitivity Settings…
- Drag the sliders — changes apply immediately and persist across launches
What you can tune:
- Max Tap Duration — how long a tap may last and still count as a click
- Movement Tolerance — how far the cursor may move during a tap
- Right-Click Hold Time — minimum hold time on the right side for a right-click
- Double-Tap Window — time window for double-tap and drag detection
- Left/Right Boundary — where the mouse surface splits into left/right click zones
- Surface Movement Limit — how far the finger may slide before a tap is treated as scrolling
Smaller values mean stricter detection, larger values more lenient. Click Reset to Defaults to restore the recommended values.
To remove MagicTapper:
# Remove the app
rm -rf /Applications/MagicTapper.app
# Remove from Login Items (if you added it)
# System Settings → General → Login Items → Remove MagicTapper
# Revoke permissions (optional)
# System Settings → Privacy & Security → Accessibility → Remove MagicTapperIf this project helped you, consider supporting its development:
- ⭐ Star this repo on GitHub
- 🐛 Open an issue if you find a bug
- 🔀 Submit a pull request to contribute
- 📢 Share with other Magic Mouse users
Having issues? Want to suggest a feature?
- Check the Troubleshooting section above
- Open an issue on GitHub if you find a bug
- Contribute submit a pull request
- Share with others who want tap-to-click for Magic Mouse!
This was 'vibe coded' using Claude Code (Sonnet 4.5)
Built to solve a frustrating gap in macOS - why doesn't the Magic Mouse have tap-to-click when the trackpad does?
Thanks to the reverse engineering community for documenting the MultitouchSupport framework, making apps like this possible.
Enjoy your new tap-to-click Magic Mouse! 🎉
Made for Mac users who love the Magic Mouse but wish it had tap-to-click.
0 comments
log in to comment.