Skip to content

0.4.0

Choose a tag to compare

@nweii nweii released this 02 Aug 00:15
bab2d73

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 off there.
  • 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 defer or haptic options.
  • 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 = left to 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 off exclusions.
  • 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.