Using Switch Controllers on Steam [Solved]

I have enabled joycond on my system and using journalctl, I can confirm my Switch Pro controller is pairing successfully (this using USB). It also works here.

Now, I’m trying to using it on Steam with the following setup:

{ config, lib, pkgs, ... }:
  ...
  nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
    "steam"
    "steam-original"
    "steam-runtime"
  ];
  programs.steam.enable = true;
}

But it is not being recognized at all. Wanted to know if someone is able to use your controllers on Steam and how you did it.

Thanks

Interesting, it’s able to recognize my gamepad fine.

I would ensure that /etc/udev/rules.d/60-steam-input.rules exists, and if it does, then ensure that dmesg mentions the controller being recognized.

Nevermind about my post from above, misread your post as “steam controller”.

According to Nintendo Switch Controller Driver Finally Set For Linux 5.16 - Phoronix the 5.16 kernel may have native support for the pro controllers.

Also thought this was interesting:

# 86-joycond.rules
# Keep steam from accessing hidraw for pro controller
# Nintendo Switch Pro Controller over USB hidraw
KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0600", TAG-="uaccess", RUN+="/nix/store/ksijymxl9sfr4fk1fz86v4iwn4zydpqz-acl-2.3.1-bin/bin/setfacl -b /dev/%k"
# Nintendo Switch Pro Controller over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="*057E:2009*", MODE="0600", TAG-="uaccess", RUN+="/nix/store/ksijymxl9sfr4fk1fz86v4iwn4zydpqz-acl-2.3.1-bin/bin/setfacl -b /dev/%k"`
1 Like

Indeed, that is very interesting, and makes total sense. I think steam-hardware has a Switch Pro rule, need to verify the udev rules that come with it, but at least this snippet you sent pinpoints to the reason of the issue. Will update you soon.

EDIT: Yeah, enabling hardware.steam-hardware works for the Pro controller. Not sure about joycons, but for now the Pro were the priority. Thanks!

2 Likes