Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hybrid boot keyboard #1361

Merged
merged 1 commit into from
Dec 21, 2023
Merged

hybrid boot keyboard #1361

merged 1 commit into from
Dec 21, 2023

Conversation

tlyu
Copy link
Collaborator

@tlyu tlyu commented Nov 30, 2023

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.

Adjust USBQuirks to switch between always Boot Protocol and the
hybrid report.

Add visual feedback about the target mode to USBQuirks.

Requires keyboardio/KeyboardioHID#100, and is probably not safe to apply independently of it.
edit: no longer requires it, because KeyboardioHID has been merged into Kaleidoscope, and I updated the patches accordingly.

Fixes #1305.

@tlyu tlyu force-pushed the hybrid-bootkb branch 2 times, most recently from 0685e00 to 58870d6 Compare December 2, 2023 21:11
@tlyu
Copy link
Collaborator Author

tlyu commented Dec 10, 2023

I would appreciate it of someone for whom the simulator tests work could try running them on this PR. (Workflows will fail because there's no way to pull in the matching KeyboardioHID commit.)

I'm having trouble getting the simulator tests to work on macOS, possibly due to XCode linker bugs. I think I fixed the compilation bugs with the simulator, but due to linker failures, I can't run the tests locally.

@tlyu
Copy link
Collaborator Author

tlyu commented Dec 10, 2023

Fixed a few things I missed in the simulator tests.

Dirty fixes added for macOS linker stuff. Will split and make separate PRs later.

@tlyu tlyu force-pushed the hybrid-bootkb branch 2 times, most recently from f1de869 to 5b9c05d Compare December 10, 2023 21:05
@tlyu tlyu marked this pull request as ready for review December 10, 2023 21:09
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.

Adjust USBQuirks to switch between always Boot Protocol and the
hybrid report.

Add visual feedback about the target mode to USBQuirks.

Signed-off-by: Taylor Yu <[email protected]>
@obra obra merged commit 7190f1a into keyboardio:master Dec 21, 2023
8 checks passed
monadplus pushed a commit to monadplus/Kaleidoscope that referenced this pull request Dec 22, 2023
Switch to a hybrid keyboard report format, which @tlyu has built out and several end users have tested as performing better on a variety of temperamental operating systems that don't support NKRO.
@tlyu tlyu deleted the hybrid-bootkb branch March 22, 2024 19:59
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.

high-level design changes for Boot/NKRO switching
2 participants