Skip to content

Repository files navigation

MigMouse — trackpad-style tapping for Magic Mouse

Build MIT License macOS 14+ Swift 5

Make Apple Magic Mouse tapping feel like trackpad tapping.
简体中文

Why MigMouse?

Magic Mouse has an excellent multi-touch surface, yet macOS does not offer the trackpad's Tap to click setting for it. MigMouse fills that gap while leaving Apple's native pointer movement, scrolling, and gestures intact.

Features

  • One-finger tap to left-click
  • Two-finger tap or right-side tap to right-click
  • Two-finger pinch to zoom with native macOS magnification events
  • Natural double-click behavior with correct click counts
  • Arbitration with scrolling and physical clicks to prevent accidental taps
  • Adjustable timing, movement, pressure, and right-click zone
  • Live touch diagnostics and a synthetic-click test
  • Launch at login and safe process-level recovery after Mac wake
  • Native menu bar app with no network access or analytics
  • System-following UI in 12 languages: English, Simplified and Traditional Chinese, Japanese, Korean, French, German, Spanish, Brazilian Portuguese, Italian, Russian, and Arabic

Requirements

  • macOS 14 Sonoma or later
  • Apple Magic Mouse with a multi-touch surface
  • Accessibility and Input Monitoring permission
  • Xcode 16 or later to build from source

Download and install

Download the latest MigMouse-v*.zip from GitHub Releases, unzip it, and move MigMouse.app to Applications. Releases are signed with Developer ID and notarized by Apple, so they open normally without using Open Anyway.

On first launch, macOS still asks you to grant Accessibility and Input Monitoring access. These privacy permissions are required for MigMouse to read Magic Mouse touches and emit clicks; quit and reopen MigMouse after granting them.

Build and run

  1. Clone this repository and open MigMouse.xcodeproj in Xcode.
  2. Select your development team if Xcode asks for one.
  3. Run the MigMouse scheme.
  4. Grant Accessibility and Input Monitoring access when prompted, then restart MigMouse.

Command-line verification:

xcodebuild \
  -project MigMouse.xcodeproj \
  -scheme MigMouse \
  -configuration Debug \
  -destination 'platform=macOS' \
  CODE_SIGNING_ALLOWED=NO \
  test

How it works

Magic Mouse touch frames
          │
          ▼
   Tap recognizer ───── scroll / physical-click arbitration
          │
          ▼
 Core Graphics mouse event
          │
          ▼
       macOS app

MigMouse dynamically loads Apple's private MultitouchSupport.framework to read touch frames and uses Core Graphics to emit standard mouse events. The application sandbox must therefore remain disabled. This private API also means MigMouse is intended for source distribution and is not suitable for the Mac App Store.

Privacy

All touch processing happens locally. MigMouse has no network client, telemetry, analytics, or account system. See the source and Security Policy for details.

Project status

Milestone 1 is complete and usable. Personalized calibration and additional gestures are planned for later milestones. See CHANGELOG.md.

Because MigMouse depends on an undocumented Apple framework, a future macOS update may require compatibility work. Bug reports with macOS version and Magic Mouse model are especially helpful.

Contributing

Issues and pull requests are welcome. Please read CONTRIBUTING.md before contributing.

Maintainers can find the signed and notarized release process in docs/RELEASING.md.

License

MigMouse is available under the MIT License.

About

Trackpad-style tap-to-click and gesture enhancements for Apple Magic Mouse on macOS.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages