Bug 501126 - Keyboard being detected as a game controller
Summary: Keyboard being detected as a game controller
Status: RESOLVED UPSTREAM
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_joystick (other bugs)
Version First Reported In: 6.3.2
Platform: NixOS Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-03-06 02:04 UTC by David
Modified: 2025-04-02 03:30 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David 2025-03-06 02:04:00 UTC
SUMMARY

My keyboard shows up in the "Game Controller" section of System Settings, with the first axis reporting a constant -32768 (left stick all the way left). Some games like "Heroes of Hammerwatch" detect this input and you get stuck walking left forever.

The only 2 keyboards I have tested this issue with are both ZSA-brand split keyboards running QMK firmware: an "Ergodox EZ" and a "Moonlander".

For me the Ergodox is shown in the Game Controller dropdown as "ZSA Technology Labs Ergodox EZ System Control" in /dev/input/event21


STEPS TO REPRODUCE

1. Have a keyboard plugged in via USB (possibly ZSA keyboards specifically) and NO game controller connected
2. Go to System Settings > Game Controller
3. Check the dropdown at the top of the settings panel


OBSERVED RESULT

The keyboard is found listed as a game controller with "Axes 1" reporting -32768


EXPECTED RESULT

The keyboard shouldn't be detected as a Game Controller


SOFTWARE/OS VERSIONS
Operating System: NixOS 25.05
KDE Plasma Version: 6.3.2
KDE Frameworks Version: 6.11.0
Qt Version: 6.8.2
Kernel Version: 6.13.5 (64-bit)
Graphics Platform: X11
Processors: 16 × Intel® Core™ i7-10700K CPU @ 3.80GHz
Memory: 15.5 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 3070/PCIe/SSE2


ADDITIONAL INFORMATION

There is a Reddit thread where a few people have reported similar issues: https://www.reddit.com/r/kde/comments/1iqfqss/kde_thinks_my_keyboard_is_a_gamepad/.

I'm running NixOS unstable, rolling back to a previous version fixes the issue (no keyboard shown in "Game Controller" and no stuck moving left issues)

I don't currently have a non-ZSA keyboard to test this with but the above reddit thread shows a "ProjectD" keyboard which also uses appears to use QMK firmware.
Comment 1 Joshua Goins 2025-03-07 16:38:23 UTC
That's a first, can you please do an `evtest` and print out the capabilities of the device? I don't need the input log, just what it prints when you select the device.
Comment 2 David 2025-03-07 17:03:49 UTC
`evtest` shows 4 different devices for the keyboard when I first run it.

	Available devices:
	/dev/input/event19:     ZSA Technology Labs Ergodox EZ
	/dev/input/event21:     ZSA Technology Labs Ergodox EZ System Control
	/dev/input/event22:     ZSA Technology Labs Ergodox EZ Consumer Control
	/dev/input/event23:     ZSA Technology Labs Ergodox EZ Keyboard

When my system is upgraded to the latest version and I select the device that is showing in Game Controller settings it shows this:

	Input driver version is 1.0.1
	Input device ID: bus 0x3 vendor 0x3297 product 0x4976 version 0x111
	Input device name: "ZSA Technology Labs Ergodox EZ System Control"
	Supported events:
	  Event type 0 (EV_SYN)
	  Event type 1 (EV_KEY)
	    Event code 103 (KEY_UP)
	    Event code 105 (KEY_LEFT)
	    Event code 106 (KEY_RIGHT)
	    Event code 108 (KEY_DOWN)
	    Event code 116 (KEY_POWER)
	    Event code 138 (KEY_HELP)
	    Event code 139 (KEY_MENU)
	    Event code 142 (KEY_SLEEP)
	    Event code 143 (KEY_WAKEUP)
	    Event code 148 (KEY_PROG1)
	    Event code 174 (KEY_EXIT)
	    Event code 227 (KEY_SWITCHVIDEOMODE)
	    Event code 248 (KEY_MICMUTE)
	    Event code 353 (KEY_SELECT)
	    Event code 356 (KEY_POWER2)
	    Event code 408 (KEY_RESTART)
	    Event code 438 (KEY_CONTEXT_MENU)
	    Event code 590 (?)
	    Event code 591 (?)
	  Event type 3 (EV_ABS)
	    Event code 16 (ABS_HAT0X)
	      Value      0
	      Min       -1
	      Max        1
	    Event code 17 (ABS_HAT0Y)
	      Value      0
	      Min       -1
	      Max        1
	    Event code 40 (ABS_MISC)
	      Value      0
	      Min        1
	      Max      183
	  Event type 4 (EV_MSC)
	    Event code 4 (MSC_SCAN)

If I downgrade to the previous version of my system I get this instead:

	Input driver version is 1.0.1
	Input device ID: bus 0x3 vendor 0x3297 product 0x4976 version 0x111
	Input device name: "ZSA Technology Labs Ergodox EZ System Control"
	Supported events:
	  Event type 0 (EV_SYN)
	  Event type 1 (EV_KEY)
	    Event code 103 (KEY_UP)
	    Event code 105 (KEY_LEFT)
	    Event code 106 (KEY_RIGHT)
	    Event code 108 (KEY_DOWN)
	    Event code 116 (KEY_POWER)
	    Event code 138 (KEY_HELP)
	    Event code 139 (KEY_MENU)
	    Event code 142 (KEY_SLEEP)
	    Event code 143 (KEY_WAKEUP)
	    Event code 148 (KEY_PROG1)
	    Event code 174 (KEY_EXIT)
	    Event code 227 (KEY_SWITCHVIDEOMODE)
	    Event code 248 (KEY_MICMUTE)
	    Event code 353 (KEY_SELECT)
	    Event code 356 (KEY_POWER2)
	    Event code 408 (KEY_RESTART)
	    Event code 438 (KEY_CONTEXT_MENU)
	    Event code 590 (?)
	    Event code 591 (?)
	  Event type 3 (EV_ABS)
	    Event code 40 (ABS_MISC)
	      Value      0
	      Min        1
	      Max      183
	  Event type 4 (EV_MSC)
	    Event code 4 (MSC_SCAN)

I realized while testing I can see the kernel got upgraded from 16.13.1 to 16.13.5 as well so I may have to try a bit harder to isolate this to the Plasma update.
Comment 3 David 2025-04-01 23:26:38 UTC
It took me way too long to get back to this but after locking my kernel to version 16.13.1 and updating everything else this issue no longer appears. So I'm guessing it's safe to say at this point that this issue isn't related to KDE Plasma.
Comment 4 Nate Graham 2025-04-02 03:30:39 UTC
Great news, thanks!