protonscr

Virtual Mouse missing capability declarations

steamclosed Steam controller
ValveSoftware/steam-for-linux#13194 · opened 2026-05-12 by noisersup · updated 2026-05-13 · 1 comments · github
Nnoisersup 2026-05-12 github

Your system information

  • Steam client version (build number or date): 1778281814
  • Distribution (e.g. Ubuntu): NixOS 26.05.20260430.15f4ee4 (Yarara)
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes
  • Steam Logs: [generate by running this command in a terminal tar -zcvf ~/Desktop/steam-logs.tar.gz ~/.steam/steam/logs]
  • GPU: NVIDIA GeForce RTX 3070

Please describe your issue in as much detail as possible:

When using the Steam Controller (2026) in Desktop Mode under Wayland, mapping buttons (like R4 or L4) to Mouse4/Mouse5 does not work.
After my diagnosis, I can confirm that wev does not register any input events when set to these buttons, while registering any other keybind (such as Page Down).

I investigated a bit, and evtest reveals that the virtual input mouse device created by Steam doesn't declare capabilities for neither BTN_SIDE, nor BTN_EXTRA, which I assume causes the compositor to drop any mouse4/5 event:

Input device name: "Valve Software Steam Controller Puck Mouse"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 272 (BTN_LEFT)
    Event code 273 (BTN_RIGHT)
  Event type 2 (EV_REL)
    Event code 0 (REL_X)
    Event code 1 (REL_Y)
    Event code 6 (REL_HWHEEL)
    Event code 8 (REL_WHEEL)

What's also interesting is the absence of BTN_MIDDLE there aswell.

Steps for reproducing this issue:

  1. Launch Steam in a Wayland environment
  2. Set the Steam controller Desktop Layout to have any button bind to Mouse4/Mouse5
  3. Run wev in terminal, and press the button on the controller while focused on the wev window
Nnoisersup 2026-05-13 github

After more debugging, I discovered that the missing mouse buttons aren't technically a bug in Steam's native uinput implementation, but the issue with extest, which I'm using to bypass the Wayland input limitations described in #13185.
Basically, I was using the older version of extest, which didn't include the BTN_EXTRA support.

I'm closing this as the issue was caused by the outdated shim. However, a native fix for #13185 would be the ideal solution so that workarounds like extest are no longer necessary. Thank you!

Nothing extracted yet.