Skip to content

v2.10.0 — Dynamic hotkey change, Win+ chord passthrough

Choose a tag to compare

@haxllo haxllo released this 31 Jul 08:47
· 809 commits to master since this release

Change hotkey at runtime — no restart needed. Win key chord detection fixed so Win+ shortcuts work natively. Dynamic re-registration stable (11 bugs resolved).

Features

  • Change hotkey at runtime: edit config.toml while nex is running — new hotkey applies instantly, no restart required
  • Win+ chords work natively: Win+E opens Explorer, Win+R opens Run while Nex is active — chord keys pass through the hook

Bug Fixes

  • Win key chord detection: fire hotkey on key-up only, chord keys (E, D, R, etc.) pass through — Win+E opens Explorer, Win+R opens Run
  • Win+ chords blocked: hook no longer eats Win key-down; GetAsyncKeyState stays accurate, keyboard state clean after hide
  • Helper key-up mismatch: removed WM_INPUT Win toggle; both nex and helper fire on key-up, no double-toggle on second press
  • Dynamic hotkey change stability (11 bugs fixed): no freeze, no deadlock, no spurious toggles, no zombie threads during re-registration
  • Quick launch pop-in: first show bypasses resize debounce, removed full-DB pre-read — content appears in single frame
  • Launch flash: hide overlay synchronously before ShellExecuteW so launched app gets foreground

Architecture

  • HotkeyListener::start_no_helper(): re-registration skips helper spawn, in-process hook installed within ~1s (was up to 120s pipe retry)
  • connect_pipe retries reduced: 40 → 10 (~8s max wait vs ~120s)

Changelog (13 commits since v2.9.1)

  • bbfdafb chore: bump version to 2.10.0 (helper 0.2.0)
  • 9eab1d2 docs: expand win-key roadmap, add Issue 11 (shutdown gap)
  • 19fec0d fix: dynamic hotkey change — 11 bugs resolved, eliminate freeze/deadlock
  • e62633d fix: fast Drop (no wait), re-registration on thread with async helper kill
  • 5c30287 fix: wait for helper death in Drop, synchronous re-registration (no thread)
  • 5b2bd75 fix: spawn hotkey re-registration on separate thread to avoid event loop freeze
  • 522d284 fix: defer hotkey re-registration to crash-recovery section, prevent event loop freeze
  • c0bad08 feat: dynamic hotkey re-registration on config change
  • 6030a0f fix: remove WM_INPUT Win toggle, hook/helper handles both show/hide on key-up
  • 09399df fix: update helper hook proc — don't eat Win, fire on key-up, chord detection
  • 49ce468 docs: update ISSUES.md — Issue 7 (chord detection) and Issue 9 (quick launch delay) marked FIXED
  • 892b60d fix: quick launch pop-in — bypass resize debounce on first show, remove db pre-read
  • 20190ae fix: win key chord detection — fire hotkey on key-up only, gate WM_INPUT on overlay visibility

Binary