keyboardio / KeyboardioHID

A HID library for Arduino
MIT License
34 stars 17 forks source link

hybrid boot keyboard #100

Open tlyu opened 11 months ago

tlyu commented 11 months ago

Make the Boot Keyboard the only keyboard, and make it have a hybrid report format in Report Protoocol, while still ending Boot Reports in Boot Protocol. The hybrid reports have the Boot Report as a prefix, which might help hosts that don't request Boot Protocol but still expect to see it.

Include a way to switch between the hybrid report, and sending only Boot Protocol regardless of whether the host has requested it. Defaults to sending hybrid protocol, but this can be changed at compile time.

Fixes keyboardio/Kaleidoscope#1305, when combined with keyboardio/Kaleidoscope#1361. They are probably not safe to apply independently.

As a side effect, fixes #98. Also fixes a minor bug with the boot keyboard's report descriptor, and compacts them a bit by more strategic use of global state.