Debug existing macOS desktop app codebases, especially Tauri, Electron, Swift, Objective-C, or Rust hybrids, where global shortcuts, Fn or Globe keys, native event interception, Accessibility, Input Monitoring, CGEventTap, NSEvent monitors, flagsChanged handlers, debounce and release bugs, or conflicts between standard global-shortcut libraries and native listeners are involved. Use when a macOS hotkey cannot be recorded, recorded hotkeys do not run, hold-to-record stops immediately, normal typing falsely triggers a hotkey, switching away from Fn breaks normal shortcuts, or a suspected hotkey bug may actually be a downstream pipeline or action failure.
Use this skill for debugging existing macOS app codebases, not for broad product architecture discussion.
This skill is written for macOS desktop apps with hybrid or native input stacks, especially:
The workflow assumes there may be both:
Fn, Globe, or special interception casesUse this skill when the user asks to debug or understand:
Fn / Globe hotkey capture or runtime issuesCGEventTap, NSEvent monitor, flagsChanged, or native event interception problemsDo not use this skill when the real issue is clearly downstream and unrelated to shortcut handling.
Example symptom:
Fn+Space can be recorded in settings, but hold-to-record starts and stops immediately.Recommended diagnosis sequence:
CGEventTap, flagsChanged, Objective-C or Swift helper, and Rust or backend bridge events like hotkey_pressed and hotkey_released.Fn handling, combo-key release handling, and generic modifier-release logic.Fn+key combos” over “capture is broken”.Collect these before proposing a fix:
Fn cannot be recorded:
inspect native capture and permission prompting firstFn breaks normal hotkeys:
inspect config routing and standard registration fallbackFor detailed paths, read references/symptom-matrix.md.
Use references/code-entrypoints.md for what to look for at each step.
FnFnFn state leaks into generic modifier-release logicRead references/permissions-and-system-behavior.md and references/symptom-matrix.md before patching native code.
Validate the exact reported symptom and nearby regressions:
FnFn+SpaceFn+Space back to a normal hotkeyUse references/verification.md for the full matrix.