Use Nintendo Switch Pro Controller on Guix

2024-11-10
Forward links: related:Hardware related:Guix under:Blog Backward links:

USB connection

This is fairly simple.

Put (udev-rules-service 'steam steam-devices-udev-rules) in the system services list, reconfigure, reboot, and that's it.

If that doesn't work, try add input group to the user.

Side note: how to add xf86-input-joystick to gdm xorg-configuration modules

Actually NSPro controller does not need this module, but let me leave a note to myself in future:

(modify-services
 %desktop-services
 (gdm-service-type
  config => (gdm-configuration
             (inherit config)
             (xorg-configuration
              (let ((xorg-config ((@@(gnu services xorg) gdm-configuration-xorg) config)))
                (xorg-configuration
                 (inherit xorg-config)
                 (modules (append (list xf86-input-joystick)
                                  (xorg-configuration-modules xorg-config)))))))))

Bluetooth

Note: this does not work currently! below is just a note to myself on how I had attempted.

Put (service bluetooth-service-type) in the configuration, and probably add bluez to the package list explicitly.

Use bluetoothctl, turn on power and scan (doable without root)

bluetoothctl
[bluetooth]# power on
[bluetooth]# Changing power on succeeded

[bluetooth]# agent on
[bluetooth]# Agent registered

[bluetooth]# default-agent
[bluetooth]# Default agent request successful

[bluetooth]# scan on
[bluetooth]# Discovery started

Then press (continuously) the button on the back of the controller for a while, then turn off power (power off) to see a list of devices. One of them is

[bluetooth]# [DEL] Device AA:BB:CC:DD:EE:FF Pro Controller

Note that currently it succeeded in pairing with it, but every time I try connecting it fails with a br-connection-create-socket error.

This seems a bug belonging to the upstream, See https://bbs.archlinux.org/viewtopic.php?id=298833.

Reference