Skip to content

Releases: rileycx/strafe

v0.1.2 — menu controls and macOS 27 improvements

Choose a tag to compare

@rileycx rileycx released this 17 Sep 18:13

strafe v0.1.2 adds menu-bar controls and improves Mission Control passthrough on macOS 27.

  • Hide the menu-bar icon while strafe keeps running. Open strafe again to restore it; fresh launches also start visible. Thanks to @matteosandrin (#5).
  • Turn Ctrl+Option+Left/Right Space-switch hotkeys on or off independently of trackpad swipes. Use the menu or strafe hotkeys on|off; CLI changes apply to the running app without restarting. Thanks to @thecolormaroun (#4).
  • Detect Mission Control's layer-20-only Dock window on macOS 27 so overlay swipes pass through natively. Adapted from @Ozdotdotdot's contribution in #2 and merged in #6, with the older-macOS detection rule preserved.

The macOS 27 Space-switching and workspace-boundary fixes from v0.1.1 remain included. Minimum support remains macOS 15 on Apple Silicon.

Validation includes strict compilation, Space-boundary and overlay tests, gesture payload tests, cross-process hotkey tests, bundle/signature checks, and live Mission Control detection on macOS 27. Earlier macOS releases have not received a full manual gesture test. The scoped security review is available in docs/reviews/2026-09-17-contributions.md.

Updating

This is a source release. From your existing clone:

git pull --ff-only
./Scripts/install.sh

After replacing an ad-hoc signed build, remove the old strafe entry in System Settings → Privacy & Security → Accessibility, add /Applications/strafe.app, and enable it. Quit and reopen strafe afterward.

strafe 0.1.1 — macOS 27 support

Choose a tag to compare

@rileycx rileycx released this 17 Sep 12:19

strafe 0.1.1 restores Space switching on macOS 27. Older builds could suppress your three-finger swipe without switching Spaces after the OS update.

  • Adds the IOHID gesture payload macOS 27 requires, selected automatically at runtime.
  • Keeps instant gestures near zero travel to avoid a visible slide.
  • Blocks swipes beyond the first or last Space, including the real gesture's ending event, to prevent the black-screen bounce-back.
  • Adds regression tests for gesture serialization, both Space boundaries, repeated blocked swipes, and normal switching after a blocked swipe.

This is a source release. From your existing clone, update and rebuild:

git pull --ff-only
./Scripts/install.sh

After installing, remove the old strafe entry in System Settings → Privacy & Security → Accessibility, add the updated /Applications/strafe.app, and enable it. Quit and reopen strafe. Local builds are ad-hoc signed, so rebuilding changes the identity macOS uses for this permission.

The minimum remains macOS 15 on Apple Silicon. Earlier macOS versions retain the original gesture path. Live switching was tested on macOS 27.0; this build has not been manually tested on an older macOS release. The README performance measurements remain macOS 26.3 results.

The macOS 27 payload implementation is adapted from joshuarli/iss, under the 0BSD license.