fix: treat IOHIDManagerOpen failure as non-fatal so the remote is detected on desktop Macs - #3
Open
greghughespdx wants to merge 1 commit into
Conversation
…o hit Apple's internally-held keyboard/trackpad interfaces, so manager-wide open reports Unsupported/ExclusiveAccess/NotPermitted while per-device open of the remote succeeds; log and continue
JamesZwq
added a commit
to JamesZwq/hypervibe
that referenced
this pull request
Jul 20, 2026
- ConfigStore.save now REFUSES to overwrite an on-disk config that doesn't parse (a hand-edit typo the app is running the fallback for), and backs up config.jsonc→.bak before any overwrite — so a UI gesture can no longer erase all bindings by writing fallback-derived content (fable machinarii#1). - Layer 'used' marking moved above the Spaces/repeatKey early-returns and wired into the select / swipe / two-finger paths, so hold-layer + repeat-key/click/gesture is momentary, not a false sticky toggle (fable machinarii#2). - Track the sticky-activator button so re-tapping toggles OFF even when the .layer binding isn't visible from inside the layer's own inherits chain (fable machinarii#3). - Hot-reload clears a sticky layer whose mode was deleted/renamed (else all keys resolve nil with no way to pop) (fable machinarii#4). Disconnect now KEEPS the sticky layer (BLE idle-disconnect shouldn't drop it) and only unwinds the momentary hold (fable machinarii#8). Pending double-tap singles are cancelled on disconnect (fable machinarii#6, partial). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Summary
Makes Siri Remote detection work on desktop Macs that have other Apple input devices attached, by treating a failed manager-wide
IOHIDManagerOpenas non-fatal.Problem
On a Mac with a Magic Keyboard or Magic Trackpad attached, HyperVibe never detects the Siri Remote at all — no error dialog, no menu bar status, just silent failure.
The sequence:
IOHIDManagerOpenreturns an error (Unsupported,ExclusiveAccess, orNotPermitteddepending on TCC state) because of those system-held interfacesstartDetection()treats the error as fatal and returns before scheduling the run loopSolution
Log the failure and continue. The manager-wide open result doesn't matter for this app's actual access path: device matching callbacks still fire, and the per-device
IOHIDDeviceOpenthatRemoteInputHandleralready performs (with seize) does not depend on a successful manager-wide open.Testing