The PS5/PS4 controller's touchpad no longer works after reconnecting

Godot Version

Godot 4.8 dev 2

Question

Hi, I’m using the new version 4.8 dev 2 of Godot. I’ve noticed a problem with the touchpad on the DualSense and DualShok 4 controllers. When I plug in the controller before starting the application, the touchpad works and the controller ID displays “DualSense Wireless Controller” at the bottom. However, when I unplug the controller or plug it in before starting the application, the touchpad on both the DualSense and DualShok 4 controllers stops working.

I haven’t been able to find the cause either, but it seems to be a conflict between HIDAPI and SDL 3.

Otherwise, here is the u.dev script so that the other aspects of the controller work on Linux (gyroscope, LED color).I don’t know if it’s related to the .udev file itself.

sudo nano /etc/udev/rules.d/99-gamepad-gyro.rules

KERNEL==“hidraw*”, ATTRS{idVendor}==“054c”, ATTRS{idProduct}==“05c4”, MODE=“0666”, TAG+=“uaccess”
KERNEL==“hidraw*”, ATTRS{idVendor}==“054c”, ATTRS{idProduct}==“09cc”, MODE=“0666”, TAG+=“uaccess”

KERNEL==“hidraw*”, ATTRS{idVendor}==“054c”, ATTRS{idProduct}==“0ce6”, MODE=“0666”, TAG+=“uaccess”
KERNEL==“hidraw*”, ATTRS{idVendor}==“054c”, ATTRS{idProduct}==“0df2”, MODE=“0666”, TAG+=“uaccess”

KERNEL==“hidraw*”, ATTRS{idVendor}==“057e”, ATTRS{idProduct}==“2009”, MODE=“0666”, TAG+=“uaccess”
SUBSYSTEM==“input”, ATTRS{idVendor}==“057e”, ATTRS{idProduct}==“2009”, MODE=“0666”, TAG+=“uaccess”
SUBSYSTEM==“leds”, ATTRS{idVendor}==“057e”, MODE=“0666”, TAG+=“uaccess”

SUBSYSTEM==“leds”, ATTRS{idVendor}==“054c”, MODE=“0666”, TAG+=“uaccess”
SUBSYSTEM==“leds”, KERNEL==“input*:rgb:indicator”, RUN+=“/bin/chmod a+w /sys/class/leds/%k/multi_intensity”
SUBSYSTEM==“leds”, KERNEL==“input*:red”, RUN+=“/bin/chmod a+w /sys/class/leds/%k/brightness”
SUBSYSTEM==“leds”, KERNEL==“input*:green”, RUN+=“/bin/chmod a+w /sys/class/leds/%k/brightness”
SUBSYSTEM==“leds”, KERNEL==“input*:blue”, RUN+=“/bin/chmod a+w /sys/class/leds/%k/brightness”
SUBSYSTEM==“input”, ATTRS{idVendor}==“054c”, MODE=“0666”, TAG+=“uaccess”

func _ready() -> void:
    print("hello world")

If reconnecting does work in older releases, you should file a bug report on GitHub.

This bug works in earlier versions (Godot 4.8 dev 1). I should report this bug on GitHub.