0.4.0
What changed
Magic Gestures 0.4.0 adds application-specific bindings, physical multi-finger clicks, scripts, haptic controls, and a more useful menu bar interface. It also replaces recognizer-specific conflict patches with shared contact-sequence rules so configured gestures do not borrow contacts from scrolling, dragging, or another gesture.
Application-specific bindings
- Limit a mouse or trackpad section to an application by display name or exact bundle identifier, such as
[trackpad "Final Cut Pro"]. - Override a global gesture inside one application, or set it to
offthere. - Group several application bindings under one heading. Repeated headings merge.
- Change one option in an application while inheriting the global action.
Binding options and feedback
- Use an expanded binding block when a gesture needs
deferorhapticoptions. - Override haptic feedback for an individual trackpad binding. Haptics remain on by default globally.
- Run an executable script directly through its shebang with
script:bindings. Magic Gestures does not invoke a shell or interpret arguments. - Set
dominant-hand = leftto mirror positional gestures and thumb-side filtering.
More gestures
- Magic Mouse two- and three-finger physical clicks.
- Magic Trackpad three- and four-finger physical clicks.
- Magic Trackpad five-finger tap.
Physical-click recognition filters side, rear, thumb, and palm contacts. Trackpad clicks remain additive: the native primary click passes through and the configured action fires once on release. A drag cancels the configured click action. Magic Mouse clicks assigned to a configured action consume their native click.
Recognition and reliability
- One recognizer owns a contact sequence until every finger lifts, preventing taps, swipes, holds, and clicks from firing over one another.
- Trackpad click classification retains brief finger dropouts without leaking a previous click's finger count into the next one.
- A configured three- or four-finger trackpad click preserves the native primary click even when macOS briefly classifies the contact snapshot as a two-finger secondary click.
- Palm filtering affects physical-click eligibility without changing the contact stream used by taps, holds, or swipes.
- Unbound Magic Mouse swipe families no longer interfere with ordinary scrolling.
- Gesture devices and callbacks are rebuilt after wake.
Menu bar
- The configuration row reports the number of active bindings and skipped lines.
- Current Gestures shows application scopes and
offexclusions. - Diagnostics can copy a concise state summary, open the last 15 minutes of logs, or enable verbose logging for the current session.
Configuration format 2
This release intentionally changes the alpha configuration format. Set config-version = 2.
Device prefixes have been removed. Put bindings inside a device section:
[mouse]
two-finger-click = middle-click
The .defer gesture suffix has been replaced by an expanded binding:
[mouse]
two-finger-tap { action = "ctrl+cmd+a", defer = true }
The release keeps config.txt user-owned, so existing files are not rewritten automatically. Migrate format-1 files before reloading settings. The bundled default and installed agent instructions describe the complete format.