diff --git a/overlays/steamcontroller-udev-rules.nix b/overlays/steamcontroller-udev-rules.nix new file mode 100644 index 000000000..74ff7ba27 --- /dev/null +++ b/overlays/steamcontroller-udev-rules.nix @@ -0,0 +1,42 @@ +self: super: + +{ + steamcontroller-udev-rules = pkgs.writeTextFile { + name = "steamcontroller-udev-rules"; + text = '' + # This rule is needed for basic functionality of the controller in Steam and keyboard/mouse emulation + SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", MODE="0666" + + # This rule is necessary for gamepad emulation; + KERNEL=="uinput", MODE="0660", GROUP="users", OPTIONS+="static_node=uinput" + + # Valve HID devices over USB hidraw + KERNEL=="hidraw*", ATTRS{idVendor}=="28de", MODE="0666" + + # Valve HID devices over bluetooth hidraw + KERNEL=="hidraw*", KERNELS=="*28DE:*", MODE="0666" + + # DualShock 4 over USB hidraw + KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0666" + + # DualShock 4 wireless adapter over USB hidraw + KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", MODE="0666" + + # DualShock 4 Slim over USB hidraw + KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", MODE="0666" + + # DualShock 4 over bluetooth hidraw + KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0666" + + # DualShock 4 Slim over bluetooth hidraw + KERNEL=="hidraw*", KERNELS=="*054C:09CC*", MODE="0666" + + # Nintendo Switch Pro Controller over USB hidraw + KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0666" + + # Nintendo Switch Pro Controller over bluetooth hidraw + KERNEL=="hidraw*", KERNELS=="*057E:2009*", MODE="0666" + ''; + destination = "/etc/udev/rules.d/99-steamcontroller.rules"; + }; +}