Iโm working on a KWin plugin that enables game controller support in Plasma. I need testers to help validate it works across different hardware.
What Does This Plugin Do?
-
Allows game controllers to navigate the Plasma desktop (mouse/keyboard emulation)
-
Automatically disables emulation when a game is using the controller
-
Prevents system suspend while the controller is active
-
Supports hotplugging (connect/disconnect detection)
How to Test
1. Set Up Environment
-
Set up a KDE development environment
-
Clone this branch of KWin: Files ยท work/yorisoft/gamepad-plugin ยท Yelsin Sepulveda / KWin ยท GitLab
-
Build using
kde-builder(or your preferred method)
CONTRIBUTING.md ยท master ยท Plasma / KWin ยท GitLab
2. Run Nested KWin Instance
Launch a nested KWin instance from your source build, then enable the plugin:
kwriteconfig6 --file kwinrc --group Plugins --key gamecontrollerEnabled true
qdbus6 org.kde.KWin /KWin reconfigure
qdbus6 org.kde.KWin /Plugins org.kde.KWin.Plugins.LoadedPlugins
Press Right Ctrl to have the nested KWin instance grab input.
3. Test These Behaviors
| Test | Expected Result |
|---|---|
| Hotplugging | Connecting/disconnecting controller appears in logs |
| App detection | Logs show โcontroller used by 1+ appsโ โ emulation disabled |
| Desktop mode | Logs show โcontroller used by 0 appsโ โ emulation enabled |
| Idle prevention | With emulation enabled, controller input prevents system suspend (set sleep to 1 min to test) |
| Steam Deck | If you have one, verify built-in controls work as expected |
Default Button Mappings
Currently using steamdeck-style layout. Other layouts coming later.
Analog Sticks
โโโโโโโโโโโโโ
Right Stick (ABS_RX/RY) โ Mouse cursor movement
Face Buttons
โโโโโโโโโโโโ
A (BTN_SOUTH) โ Enter
B (BTN_EAST) โ Escape
Bumpers
โโโโโโโ
LB (BTN_TL) โ Alt
RB (BTN_TR) โ Ctrl
Triggers
โโโโโโโโ
LT (ABS_Z) โ Right Click
RT (ABS_RZ) โ Left Click
D-Pad
โโโโโ
D-Pad โ Arrow Keys
Center Buttons
โโโโโโโโโโโโโโ
Select โ On-Screen Keyboard (planned)
Start โ Meta/Super
Report Your Results
Please comment with your results using this format:
Controller: [e.g., Xbox One Wireless, DualSense, 8BitDo Pro 2]
Connection: [USB / Bluetooth]
Result: [Pass / Fail]
Notes: [Any issues, unexpected behavior, or logs you feel worth including]
Known Limitations
-
modern game controller layout assumed (more layouts coming later)
-
On-screen keyboard binding not yet implemented
Thanks for helping test! ![]()