Releases: nweii/trickpad
Release list
0.6.1
Fixed
- Prevented a resting Magic Mouse edge contact from being recruited into a two-finger tap. Deliberate taps near an edge remain available.
- Applied per-contact arrival tracking to simultaneous multi-finger taps on both devices. Hold gestures, swipes, and physical clicks retain their own recognition rules.
Changed
- Grouped hidden guided hardware tests under a Gesture testing Diagnostics submenu. It remains absent from normal installs.
This is a backward-compatible patch release. Existing version 3 configuration files keep working.
0.6.0
Magic Gestures now uses standard TOML for its configuration file.
Changed
- Settings live at
~/.config/magic-gestures/config.toml. - Actions, shortcuts, URLs, scripts, and exclusions use quoted strings.
- Expanded bindings use TOML inline tables, such as
two-finger-tap = { action = "middle-click", defer = true }. - Application-specific bindings use nested tables, such as
[TRACKPAD."Final Cut Pro"]. - Invalid TOML rejects a reload without replacing the running configuration. Unknown Magic Gestures settings and bindings are still reported individually.
This is an intentional alpha configuration change from version 2 to version 3. Version 2 files need to be converted before updating.
0.5.1
Magic Mouse physical-click gestures now tolerate incidental movement and wait until mouse-up before firing. Intentional drags still cancel the configured action, and the native click continues normally.
Added
- Copy Prompt under Manage with Agent creates setup instructions for any general chat assistant. It links to the public configuration reference and asks for a ready-to-paste settings block without copying private configuration values.
Changed
- The starter configuration is shorter and easier to scan, with working defaults separated from optional examples.
Fixed
- Magic Mouse physical clicks tolerate up to three pixels of incidental movement. Four pixels begins a drag and cancels the configured action.
- Physical-click actions fire on mouse-up, preserving native clicking and avoiding accidental actions during click-and-drag.
- Gesture trace analysis no longer counts unrelated configured tap actions as physical-click false positives.
Existing version 2 configuration files continue to work. Magic Mouse physical-click bindings remain experimental and disabled by default. Enable them with experimental-mouse-click-gestures = true under [general].
0.5.0
Added
- Application-specific gesture bindings and exclusions using sections such as
[mouse "Safari"]. - Expanded bindings with per-gesture
deferand trackpadhapticoptions. - Haptic confirmation for configured trackpad gestures, enabled by default.
- Executable script actions and URL bindings with clipboard and date substitutions.
- Optional left- and right-side modifier keys, including shortcuts such as
right-ctrl+space. - Three- and four-finger physical clicks on trackpads.
- Experimental two- and three-finger physical clicks on Magic Mouse. Enable them with
experimental-mouse-click-gestures = trueunder[general]; they remain sensitive to hand placement and contact timing. - Diagnostics for copying app state, opening recent logs, and temporarily enabling verbose logging.
- Current Gestures and configuration status in the menu bar.
Fixed
- Prevented taps, clicks, holds, and swipes from dispatching over one another during the same touch sequence.
- Prevented trackpad drags, palms, thumbs, edge contacts, brief contact dropouts, and interrupted releases from becoming physical-click actions.
- Preserved native scrolling when a swipe family has no configured binding.
- Preserved native trackpad clicks while running configured multi-finger click actions on release.
- Re-registered touch devices after sleep and wake.
- Sent hardware-shaped keyboard sequences for apps that require explicit modifier transitions and side-specific modifier flags.
- Reported invalid or rejected configuration lines in the menu instead of silently presenting an empty configuration.
Version 2 configuration remains supported. Magic Mouse physical-click bindings require the explicit experimental opt-in.
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.
0.3.0
- Add optional
.defersuffix for tap bindings that must coexist with double-tap gestures.\n- Reject broad palm contacts and physical clicks from trackpad tap gestures.\n- Prevent overlapping trackpad tap recognizers from firing from the same contact sequence.\n- Support hold-and-tap gestures when both fingers lift together.\n- Collapse internal narrow and wide gesture aliases into one Current Gestures row.
0.2.2
0.2.1
- Send modified shortcuts as complete modifier and key sequences, fixing hotkeys in apps such as Aqua Voice and Wispr Flow.
- Implement the advertised mouse three-finger tap and two-finger swipes, plus trackpad two-finger tap and hold-slide gestures.
- Seed fresh configurations with matching Return and Escape hold gestures. Existing configurations remain unchanged.
- Validate general settings more strictly and expand parser, dispatch, and documentation checks.
0.2.0
What’s new
- Open web URLs and app deeplinks from any gesture.
- Fill URL parameters from clipboard text or the current date and time, with URL encoding when needed.
- Validate URL bindings and substitutions when settings reload, without logging expanded clipboard contents.
- Detect installed coding agents from the new Manage with Agent menu, with version-specific configuration guidance.
- Version the configuration format and add a source-update script that previews incoming commits before rebuilding.
- Give new Magic Mouse configurations a two-finger-tap middle click by default.
Existing configurations continue to work and are preserved during updates.
0.1.0
First release. Download the zip, unzip it, drag MagicGestures.app anywhere, and clear Gatekeeper once through System Settings > Privacy & Security > Open Anyway. Magic Gestures starts automatically at login; turn off Open at Login from the menu bar item if you do not want this. The README covers setup, and GESTURES.md lists every gesture, key, and action.