Problem
After updating MiddleClick, macOS may silently invalidate the Accessibility permission. AXIsProcessTrusted() can still return true (false positive), but actual event taps fail. Users see MiddleClick "not working" with no explanation.
This primarily affects users who build from source (ad-hoc signing changes the binary hash every time). Release builds signed with Developer ID should retain permissions across updates, but edge cases exist.
Proposed fix
After AXIsProcessTrusted() returns true, attempt CGEventTapCreate() as a secondary check. If it returns NULL, the permission is stale — show a dialog explaining the user needs to:
- Remove MiddleClick from
System Settings > Privacy & Security > Accessibility
- Re-open MiddleClick to re-trigger the permission prompt
Alternatively, offer to run tccutil reset Accessibility art.ginzburg.MiddleClick (requires sudo).
Context
- Apple has not fixed this as of macOS Tahoe 26. All similar apps (Karabiner, BetterTouchTool, Hammerspoon) handle it the same way: detection + user-facing instructions.
AXIsProcessTrusted() false positive is a known issue.
- Current workaround is documented in docs/troubleshooting.md.
Related
Problem
After updating MiddleClick, macOS may silently invalidate the Accessibility permission.
AXIsProcessTrusted()can still returntrue(false positive), but actual event taps fail. Users see MiddleClick "not working" with no explanation.This primarily affects users who build from source (ad-hoc signing changes the binary hash every time). Release builds signed with Developer ID should retain permissions across updates, but edge cases exist.
Proposed fix
After
AXIsProcessTrusted()returnstrue, attemptCGEventTapCreate()as a secondary check. If it returnsNULL, the permission is stale — show a dialog explaining the user needs to:System Settings > Privacy & Security > AccessibilityAlternatively, offer to run
tccutil reset Accessibility art.ginzburg.MiddleClick(requires sudo).Context
AXIsProcessTrusted()false positive is a known issue.Related