How zexrox/huntsman-synapse-web works
This is a Windows/Chrome bridge that lets Synapse Web operate a Huntsman V3 Pro TKL through a virtual HID identity while the native helper talks to the real keyboard. The main flow is Synapse Web → injected virtual HID → page relay → extension background → native host → physical HID, with replies returning through the same intermediaries. The host also translates Game Mode controls into a Windows key lock and reports Fn+F10 state back to the page. README-described setup and firmware limitations are included; sampled excerpts do not expose every host command’s implementation, so uncertain internal links are omitted.
Main entry points: host.py Feature-report bridge · relay.js Page relay · background.js Native messaging · virtual-hid.js Virtual HID
Components 12
Web integration
- Virtual HID
extension/virtual-hid.js - Bundle compatibility
extension/virtual-hid.js - Game Mode page sync
extension/virtual-hid.js
Chrome bridge
- Page relay
extension/relay.js - Native messaging
extension/background.js
Native helper
- Feature-report bridge
native/host.py - Game Mode lock
native/host.py - Diagnostics
native/host.py
Keyboard and OS
- HID API
- Huntsman keyboard
- Windows key hook
Other components
- Synapse Web
Connections 18
- Synapse Web → Virtual HID: uses HID
- Virtual HID → Page relay: sends RPC
- Page relay → Native messaging: forwards requests
- Native messaging → Feature-report bridge: Native Messaging
- Feature-report bridge → Native messaging: returns replies
- Native messaging → Page relay: returns replies
- Page relay → Virtual HID: delivers replies
- Virtual HID → Bundle compatibility: patches failures
- Feature-report bridge → HID API: enumerates and opens
- Feature-report bridge → Huntsman keyboard: forwards reports
- HID API → Huntsman keyboard: accesses interface 3
- Feature-report bridge → Game Mode lock: handles Game Mode
- Game Mode lock → Windows key hook: installs key hook
- Game Mode lock → Native messaging: publishes state
- Native messaging → Page relay: dispatches state
- Page relay → Game Mode page sync: posts state
- Virtual HID → Diagnostics: logs notes
- Feature-report bridge → Diagnostics: logs diagnostics