protonscr

Switch Wired Pro Controller doesn't work in games, sometimes moves the mouse with Steam open

steamclosed Distro Family: UbuntuGeneral controller / Steam Input
ValveSoftware/steam-for-linux#5939 · opened 2018-12-05 by eska0 · updated 2019-07-18 · 7 comments · github
Eeska0 2018-12-05 github

System information

  • Steam client version (build number or date): 2018-12-04
  • Distribution (e.g. Ubuntu): Linux Mint 19
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

Issue

I have an official, licensed-by-Nintendo Wired Switch Pro Controller (made by PowerA), which is not the same as the regular Pro Controller, but Steam recognizes it as a regular Pro Controller and it doesn't work with any games.

The controller shows up in Big Picture as a regular Switch Pro Controller:

Switch Wired Pro Controller in Steam Big Picture

The controller's behaviour depends on if Steam is running, if it's in big picture mode, and if Switch Pro Configuration Support is enabled.

Steam running Big Picture mode Switch Pro Configuration Support Result
  • - [ ]
The controller works normally in non-Steam applications and sometimes in Steam games that don't require Steam to be running to play (e.g. Psychonauts, but not Super Meat Boy).
  • - [x]
  • - [ ]
  • - [ ]
The controller does nothing in any game launched through Steam.
  • - [x]
  • - [ ]
  • - [x]
The controller again does nothing in any game launched through Steam, but now it controls the mouse and keyboard (outside of games). The table below describes how the controller is mapped.
  • - [x]
  • - [x]
  • - [ ]
The controller navigates Big Picture normally, but does nothing when games are launched. The home button opens the Steam overlay, but no buttons work in-game.
  • - [x]
  • - [x]
  • - [x]
The controller acts the same as above except the controller can be remapped to mouse/keyboard actions within Big Picture and that works in-game. Outside of Big Picture, it still controls the mouse and keyboard.

When configuration support is enabled, this is how the controller acts:

Controller input Action
Right stick Moves the mouse
Left stick Arrow keys
ZR Left mouse button
ZL Right mouse button
L Ctrl
R Alt
Minus Tab
A Spacebar
B Enter
X Page down
Y Page up

The device name is "Bensussen Deutsch & Associates,Inc.(BDA) Core (Plus) Wired Controller" and this is the list of events from running evtest. If I need to provide any other technical information about the controller or anything else, I can do that.

Kkisak-valve maintainer 2018-12-05 github

Hello @eska0, please verify you have the steam-devices distro package.

Eeska0 2018-12-06 github

I didn't have that package, but after installing it and restarting Steam, the controller acts the same.

Kkisak-valve maintainer 2018-12-06 github

I missed a critical detail, the udev rules in Ubuntu 18.04's steam-devices is too old to come with Switch Pro Controller entries. You'll want to include (and possibly need to adjust) the Switch udev rules from https://github.com/ValveSoftware/steam-devices/blob/master/steam_input.rules in your udev config.

Eeska0 2018-12-06 github

I updated /lib/udev/rules.d/99-steam-controller-perms.rules with the version from that repo and reloaded the udev rules, but nothing changed. I tried commenting out the other Switch controller lines and adding one for the wired controller, I tried just adding a line to the file that was there originally, still nothing.

At this point I discovered the file /lib/udev/rules.d/70-steam-controller.rules, which only contains a line for the wired controller (with the correct vendor and product IDs):

# NS PRO Controller USB
KERNEL=="hidraw*", ATTRS{idVendor}=="20d6", ATTRS{idProduct}=="a711", MODE="0660", TAG+="uaccess"

I tried moving the line from this file to 99-steam-controller-perms.rules, but the controller still acts the same as before in all cases.

Kkisak-valve maintainer 2018-12-06 github

Can you run lsusb from the usbutils package and check that the vendor/product IDs match your controller.

Eeska0 2018-12-07 github

They do match.

  idVendor           0x20d6 
  idProduct          0xa711 
Eeska0 2018-12-08 github

As of version 2018-12-08, it's completely fixed for me. The controller now works with Steam.

Nothing extracted yet.