Skip to content

Make the Ctrl+Option+Left/Right Space-switch hotkeys toggleable - #4

Merged
rileycx merged 4 commits into
rileycx:mainfrom
thecolormaroun:add-hotkey-toggle
Sep 17, 2026
Merged

rileycx merged 4 commits into
rileycx:mainfrom
thecolormaroun:add-hotkey-toggle

Conversation

@thecolormaroun

@thecolormaroun thecolormaroun commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Add a default-on Space-switch hotkey setting so users can release Ctrl+Option+Left/Right for another app while keeping accelerated trackpad swipes. The menu and strafe hotkeys [on|off] use the same preference.

CLI changes now notify running copies to reload the saved setting without restarting. Repeated updates retain the Carbon registration handles so turning shortcuts off reliably unregisters them. The notification carries no payload and introduces no network access or additional permissions.

Maroun's original commit and authorship are preserved. Integration keeps the menu-bar hiding and macOS 27 Mission Control fixes already on main.

Validation: strict Swift build, all four Swift boundary/overlay tests, C payload/overlay tests, isolated hotkey lifecycle and cross-process notification tests, release bundling, and signature verification passed locally. CI includes the new hotkey tests. The scoped security review is recorded in docs/reviews/2026-09-17-contributions.md.

Those hotkeys are registered system-wide via Carbon's RegisterEventHotKey,
which can silently override a third-party window-tiling shortcut bound to
the same chord (e.g. "snap window right" tools commonly use
Ctrl+Option+Arrow too). This is a separate mechanism from the gesture tap,
so it can be disabled independently without touching Accessibility or the
swipe speedup itself.

Adds a persisted `spaceHotkeysEnabled` setting (default true, so existing
behavior is unchanged), a "Space-switch hotkeys" menu-bar checkbox, and a
`strafe hotkeys [on|off]` CLI command, following the same conventions as
the existing `TransitionSpeed` setting. Updates SECURITY.md's persistence
section to describe both stored keys.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@rileycx
rileycx merged commit a5f2c61 into rileycx:main Sep 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants