Linux 5.14 HID Input Driver To Handle Programmable Buttons
Programmable Buttons are as one would think, per the USB specification: "the user defines the function of these buttons to control software applications or GUI objects." With Linux 5.14 the kernel driver will now finally support the Programmable Buttons and in turn map them to the KEY_MACRO[#] event key codes. The KEY_MACRO event codes in turn are already supported/used by various user-space software.
That handling has been queued into HID's for-next branch ahead of the Linux 5.14 merge window.
As for now only setting up this USB HID Programmable Buttons to KEY_MACRO event code mapping, it stems from a developer (Thomas Weißschuh) wanting to pass custom keycodes from a programmable keypad running the QMK firmware to Linux and finding that mapping of such "Programmable Buttons" to the existing Linux MACRO keycodes would be the best approach.