Repository navigation
macOS 27 support: instant switching is back - #2
Closed
Ozdotdotdot wants to merge 6 commits into
Closed
Ozdotdotdot wants to merge 6 commits into
Ozdotdotdot wants to merge 6 commits into
Conversation
added 6 commits
September 14, 2026 22:15
Wed Riley's Transition-speed presets, install.sh, Preferences and bench sweep into the macOS 27 engine instead of keeping two engines. Ramps now build on the same event creators as instant (strafe_create_ramp_event, both profiles) and run through the observe-and-confirm pipeline, so speed and profile compose. The fire-and-forget ramp poster and waitForPendingSwitch have no callers left and are gone; the CLI waits on the real completion instead. Also in this merge: single-transient-read tolerance in the poll loop, a one-second overlay grace that never disables interception over Mission Control's close animation, and a strafe mc-probe diagnostic (AX notifications plus Dock layer census) after overlay detection proved silent on 27.
Mashing swipes through Mission Control's close animation could pause trackpad interception after a single failed request: the failure breaker fired on the first unexpectedChange, and overlay detection is silent on some systems so no grace applied. Now a changing anomaly polls on until the deadline, only a stable wrong destination fails fast, and pausing takes three delivery failures in a row (any success resets). A failure within a second of an overlay is still neither counted nor reported.
mc-probe showed Dock's AX overlay notifications never arrive on 27, while Mission Control presents exactly one Dock window at layer 20 (closed desktop shows none). The snapshot heuristic required a layer-18 window, so it never fired and synthetic switches went into Mission Control. A lone layer-20 Dock window is now an overlay signal, and the engine consults the snapshot at request admission in addition to the AX flag. Interceptor behavior is unchanged: Began already passed through on the snapshot.
Owner
|
Thank you Oz! I saw this after making an update for mac 27 earlier. Is there anything particular here that you feel is worth still pulling in compared to the latest update? |
rileycx
added a commit
that referenced
this pull request
Sep 17, 2026
Adopt the reviewed Mission Control detection check from PR #2, with a macOS 27 availability guard, regression tests, contributor acknowledgment, and the scoped contribution-security review. Preserve the individual commits so Ozair retains authorship of the adapted fix.
Contributor
Author
|
All good man! Looks like you made more changes otherwise, just happy to be of service anyhow. Gonna close this one bossman. Cheers! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hey Riley! Been using Strafe since you open sourced it :)
macOS 27 completely broke it (synthetic swipes get swallowed, nothing moves), so I dug in and got it working again on 27.0 arm64. Hotkeys, swipes, both edges, Mission Control passthrough all verified live.
What's in here:
STRAFE_EVENT_PROFILEto forcelegacy/macos27. Pre-27 defaults are untouched.strafe mc-probediagnoses this live).Two apologies: I know you love the line count, so I'm sorry about all the tests. Totally fine if you want them trimmed or dropped. And I couldn't check anything pre-27 here, so a 26 sanity look would be great.
bench/still drives the synchronous poster.Happy to split this up or rework anything. Thanks for strafe!