
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.