{ lib, config, pkgs, ... }: lib.mkIf config.desktop.enable { services.udev.extraRules = '' # Disable mouse as gamepad ACTION=="add", SUBSYSTEM=="input", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="1906", RUN+="/bin/sh -c 'chmod 000 /dev/input/by-id/usb-ASUSTeK_ROG_PUGIO_II-if03-joystick'" ACTION=="add", SUBSYSTEM=="input", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="1908", RUN+="/bin/sh -c 'chmod 000 /dev/input/by-id/usb-ASUSTeK_ROG_PUGIO_II-if03-joystick'" ACTION=="add", SUBSYSTEM=="input", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="1906", RUN+="/bin/sh -c 'chmod 000 /dev/input/by-id/usb-ASUSTeK_ROG_PUGIO_II-if03-event-joystick'" ACTION=="add", SUBSYSTEM=="input", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="1908", RUN+="/bin/sh -c 'chmod 000 /dev/input/by-id/usb-ASUSTeK_ROG_PUGIO_II-if03-event-joystick'" ''; services.ratbagd = { enable = true; package = pkgs.libratbag.overrideAttrs (previousAttrs: { postInstall = '' # Ensure the target directory exists mkdir -p $out/share/libratbag/ # cat the custom configuration file cat << EOF > $out/share/libratbag/asus-rog-pugio-II.device [Device] Name=ASUS ROG Pugio II DeviceMatch=usb:0b05:1906;usb:0b05:1908 Driver=asus [Driver/asus] Profiles=3 Buttons=10 Leds=3 Dpis=4 Wireless=1 DpiRange=100:16000@100 ButtonMapping=f0;f1;f2;e4;e5;e6;0;e8;e9;e1;e2 EOF ''; }); }; }