Fix Framework Laptop 16’s keyboards appearing as gamepads on Linux
Games on Linux might see your Framework Laptop 16’s keyboards as gamepads.
This is because the QMK-based firmware1 running on them includes the a HID descriptor that reports the System Controls usage2. Linux uses the contents of that usage to fill out things like the absolute coordinate range and button set.
Now, udev classifies a device as a joystick if it has absolute coordinates and joystick buttons. This is understandable, because joysticks have those things.
Unfortunately, QMK keyboards also have absolute coordinates and joystick buttons if you define EXTRAKEY_ENABLE
3.
There is an issue on the QMK repository from May 2025 documenting the impact this has on Steam.
If you need a quick fix, you can override udev’s detection with a rule. Place this text in
/etc/udev/rules.d/99-framework-keyboard.rules
# Disable the joystick indicator on Framework input devices.
SUBSYSTEMS=="input", ATTRS{id/vendor}=="32ac", ENV{ID_INPUT_JOYSTICK}=""
This rule will become problematic if Framework ever releases a gamepad.
Run udevadm trigger
or reboot, and your extra gamepads should disappear.
-
This is required if you wish to use any of the
KC_SYSTEM_*
keys. ↩︎