# DS5Dongle — grant HID access to the active session user SUBSYSTEM=="hidraw", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6", TAG+="uaccess" SUBSYSTEM=="hidraw", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0df2", TAG+="uaccess" # DS5Dongle — auto-haptics loopback lifecycle (tie it to the dongle's presence) # Start the loopback only while the dongle is connected, so its playback target # (ds5_dongle_sink) always exists and it can never fall back to the speakers and # feed back. On unplug, stop it so it re-links cleanly on the next plug. SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="054c", ATTR{idProduct}=="0ce6", TAG+="systemd", ENV{SYSTEMD_USER_WANTS}+="ds5-haptics-loopback.service" SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="054c", ATTR{idProduct}=="0df2", TAG+="systemd", ENV{SYSTEMD_USER_WANTS}+="ds5-haptics-loopback.service" # On remove the sysfs attributes are gone, so match the persisted udev-db env. SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", ENV{ID_VENDOR_ID}=="054c", ENV{ID_MODEL_ID}=="0ce6", RUN+="/usr/lib/ds5dongle/ds5dongle-loopback-stop" SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", ENV{ID_VENDOR_ID}=="054c", ENV{ID_MODEL_ID}=="0df2", RUN+="/usr/lib/ds5dongle/ds5dongle-loopback-stop"