-
-
Notifications
You must be signed in to change notification settings - Fork 39.8k
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
[feature] add support for USB programmable buttons usage #12950
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any existing software that supports these usage codes, or maybe even some hardware that actually send these keycodes?
Did you test how would Windows behave when seeing a device with such HID descriptor?
I have no real hardware. For the implementation in Linux I first implemented a |
Maybe it would be better have these buttons only in the quantum keymap? |
@sigprof Thanks for your reviews! |
0f91383
to
1aff3b8
Compare
ff878b6
to
de8613f
Compare
FYI the host side implementation for Linux has been accepted and is scheduled to end up in Linux 5.14: |
4cd466b
to
c0291f7
Compare
These are defined in the USB "Consumer Page" as "The user defines the function of these buttons to control software applications orGUI objects." This allows QMK to emit events that can be handled by bespoke software on the host without having to worry about other software trying to handle them. On Linux this is handled natively from version 5.14 onwards by the vanilla HID layer, emitting KEY_MACRO# events.
c0291f7
to
a29a3bf
Compare
FYI I tested the latest rebase and it still works. |
Thanks! |
Thank you all :-) |
well, fun... this is breaking a bunch of boards:
|
@drashna Want me to prepare a fix or are you working on it already? |
I haven't taken a look at where the issue is exactly, so please do! |
no worries! That's part of why we have the develop branch |
Description
This adds the possibility to send "Programmable Button" events.
These are defined in the USB "Consumer Page" as
"The user defines the function of these buttons to control software
applications or GUI objects."
This allows QMK to emit events that can be handled by bespoke software
on the host without having to worry about other software trying to
handle them.
Open points:
Types of Changes
Checklist