Thread (2 messages) 2 messages, 2 authors, 2021-05-18

Handling of USB "Programmable button" controls as KEY_MACRO# events

From: Thomas Weißschuh <linux@weissschuh.net>
Date: 2021-05-18 13:21:49
Also in: linux-input, lkml

Hi everybody,

Would it make sense to map the "Programmable Buttons" control from the
USB HID Consumer page [0] to the linux event codes KEY_MACRO1 ... KEY_MACRO# ?

Those controls are documented in the USB spec as:

"The user defines the function of these
buttons to control software applications or GUI objects."

The KEY_MACRO event codes are documented with:

"Some keyboards have keys which do not have a defined meaning, these keys
are intended to be programmed / bound to macros by the user."

My usecase is the passing of custom keycodes from a programmable keypad
(via QMK[1]) to Linux.
(This would also need new functionality in QMK itself)

Alternatives:

* Send Raw HID from QMK
  * Con: needs a dedicated, nonstandard driver on the host
* Use F-Keys
  * Con: only F13-F19 are usable (F1-F12 are used by normal keyboards, F20-F23
    are repurposed with other keys for X11 compat)

Possible problems:

* There are 65k programmable keys defined by USB but only 30 macro keys are
  supported by Linux.

Thanks,
Thomas

[0] https://www.usb.org/sites/default/files/hut1_22.pdf#section.15.14
[1] https://qmk.fm/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help