Skip to content

fix(windows): allow synthetic hotkeys to trigger OpenLess - #948

Draft
H-Chris233 wants to merge 1 commit into
Open-Less:betafrom
H-Chris233:codex/windows-synthetic-hotkeys
Draft

fix(windows): allow synthetic hotkeys to trigger OpenLess#948
H-Chris233 wants to merge 1 commit into
Open-Less:betafrom
H-Chris233:codex/windows-synthetic-hotkeys

Conversation

@H-Chris233

Copy link
Copy Markdown
Collaborator

Summary\n\n- Remove the LLKHF_INJECTED filter so SendInput, keybd_event, and virtual keyboard tools reach the normal OpenLess hotkey dispatcher.\n- Keep configured-hotkey matching, down/up edge de-duplication, left/right modifier separation, combo cancellation, and held-state cleanup on reload/exit.\n- Fix the no-ASR stop path so the capsule is hidden after dry-run or ASR initialization failure.\n- Update Windows smoke scripts to use complete down/up cycles, release all modifiers in inally, and cover 20 iterations each for keybd_event and SendInput.\n- Make smoke tests independent of persisted local hotkey mode and skip the Windows symlink assertion only when error 1314 means the test environment lacks symlink privilege.\n\n## Validation\n\n- Rust tests: 1150 passed, 0 failed\n- cargo build: passed\n- Frontend

pm test: 48 passed\n- Windows keybd_event smoke: 20/20\n- Windows SendInput smoke: 20/20\n- Capsule lifecycle smoke: passed\n- PowerShell smoke AST checks: passed\n- git diff --check: passed\n\nThe Windows release build was attempted but blocked during the third-party oundry-local-sdk build script/native dependency download stage; no unrelated dependency changes were made.\n\n## Scope\n\nThis intentionally accepts synthetic low-level keyboard events from any source, while only configured hotkeys trigger OpenLess. PostMessage(WM_KEYDOWN) and Windows security-desktop/integrity-boundary restrictions remain outside the low-level hook path.\n\n## Checklist\n\n- [x] Synthetic RightControl events accepted by the low-level hook\n- [x] Duplicate down/up and modifier state handling covered\n- [x] Ctrl+A, Alt+Tab, and ordinary unrelated keys remain guarded by existing matching logic\n- [x] Modifier cleanup added to smoke failure paths\n- [ ] Windows release build (blocked by third-party SDK download/build stage)

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.

1 participant