Whether they work for any particular USB keyboard, I wonder.
The Logitech ones I have even came with those, and I imagine it would be easier and cheaper to keep the support than remove it (because the USB HID protocol has not changed, nor PS/2, and both have a mechanism for supporting new keycodes and macros like those in "media keyboards").
A long time ago I connected knobs, switches and dials to Microsoft Flight Simulator using RawHID on one of the early Teensy devices.
ATmega32u4 on the Teensy 2, AT90USB1286 on the Teensy 2++. Yes, Paul Stoffregen even provided a pre-Arduino library,
RawHID (or
USB keyboard for keyboards specifically), so all you need to implement it is those files, avr-gcc, and a Teensy (of the older variants; 2.0 or 2.0++). Stoffregen wrote the bootloader (HalfKay) in assembly, and it is smaller than the ones used in Arduinos (Pro Micro/Leonardo), so you can fit a bit more stuff on those compared to the Arduinos using the same chips. Teensy keyboard implementations abound if you look for them. I seem to recall that there is at least one commercial keyboard one, that has a Teensy inside (licensed from PJRC.com).
The main reason the microcontroller approach appeals to me, is the adaptability (wired or BLE) and ease of mapping the keystrokes to whatever one wants. In fact, I'd wager that I would probably want to switch between some different layouts at run time. For playing games (via emulators thus far) I definitely want to change the mappings; that's why I designed
this Pro Micro gamepad for use with Arduino Pro Micro (has the same ATmega32U4 core as Teensy 2.0, but an Arduino Leonardo bootloader (slightly bigger), but is dirt cheap and ubiquitous on fleabay). It's two 10cm × 5cm PCBs panelized as one 10cm × 10cm one for cheapness, the side-by-side images showing both sides. I designed it to be used with Flash games, Mame, and other emulators, with a large number of mappings built in to choose from. I like the problem-solving and planning part way too much, and haven't even ordered the boards.
(I did use a Logitech Rumble 2 with an userspace uinput mapping daemon in Linux (for flash/web games), until I wore out the right-side buttons. Where do you get that graphite paint they use on the contact surfaces? It does not seem to be impregnated in the rubber button, just painted on. Or maybe glued from a sheet.)