The DualSense Is Making Even More Sense

By

As reported earlier this month, the DualSense controller from Sony was already working great out of the box on Linux. However, it wasn’t long after that that Valve added support for the more advanced features of the device.

Starting November 12, Valve updated the controller to have basic input functionality with their beta Steam client:

Added initial input support for the PS5 DualSense controller. Advanced features such as rumble, trackpad, and gyro are not yet supported.

The pad had to have its controls re-configured through Steam BPM previously, but this update seems to have prevented users from having to do that.

The patch notes for that day also mention that apparently Valve fixed the Series X controller from showing up twice in Steam when it was connected. I didn’t experience such as issue myself, but it is what it is I suppose.

Less than a week later, a bunch of other features were included, including different LED colors, trackpad, gyro, and basic vibration functionality:

-Added additional support for the PS5 DualSense controller including LED, trackpad, rumble, and gyro functionality.-Added a directional swipe mode for use with trackpads and gyro

From there it only got better: the same features started to work through Bluetooth, external audio-based haptics when rumble is enabled, vibration bugs were fixed.

You’ll notice that, when opted into the Steam beta client, the icons for the buttons have been added when using a DualSense:

The strange thing is, both Square and Circle – their icons are a little small.

*However, *these beta updates didn’t seem to be working on the Linux side. When I plugged the controller in, rumble, gyro, LED, etc. wasn’t functioning. When I filed a bug report for it on GitHub, I was glad to know I wasn’t the only one experiencing this problem.

Just yesterday, Valve updated the Steam beta client once again, that would fix this problem for Linux users:

Enabled enhanced functionality for PS5 controllers on Linux (may require steam-devices package update)

The update also fixed LED color changes when connected via Bluetooth. On a side note, the same update added experimental support for more than 4 Xbox gamepads, and games that use raw input have improved support. (Just today, Valve disabled the 5+ gamepad “pending further testing.”)

After yesterday’s update, I can confirm the extra features of the DualSense are now working!

LED:

Triggers now have sensitivity:

Gyro:

In my case, I have the gyro enabled for Portal 2 by holding the Square button down. The gyro will definitely be of good use when playing precision-heavy games like first-person shooters.

Vibration is there too, but obviously you can’t “see” that visually.

But this isn’t just for games on Steam. While Steam is running, the left trigger will act as right-click, right trigger as left-click. The right analog stick will act as a mouse. Left-stick click will bring up the virtual keyboard from Steam. As I’m writing this post, moving the left stick will move the text cursor, Square moves the page up, Triangle page down. Cross adds a new line, and Circle adds a space. The D-pad seems to act as some sort of paste function. Holding the PS button and up or down on the left stick increases or decreases the sound volume; tilting left plays the previous song if any song is playing, tilting right plays the next, and left stick click plays/pauses. The left part of the touch pad acts as a page scroller, while the right side acts like a trackball. Pretty interesting if I say so myself!

Props to Valve for actually getting this done quicker than I expected. Only thing we’re missing right now is a battery indicator. If Valve could add that, that I don’t know; that may be more so a kernel issue.

As for adaptive triggers and more precise haptic feedback, this is something we’re still going to have to wait for from game developers, if they will ever get the development kits they need to get this to work. Hopefully these features aren’t exclusive to PS5 titles.

Note that currently, in order to enjoy the latest features of the DualSense, you will need to be opted into the Steam client beta. Most of you reading this should already know how to do that, but if not, go to the Settings menu in Steam. On the “Account” page, under “Beta participation”, click the CHANGE button, select the “Steam Beta Update” option from the dropdown menu, and restart Steam. Also, if you want to configure the DS’s controls on a per-game basis, you will need to enable PlayStation controller support in the Controllers menu in Steam BPM.

If the DualSense still isn’t working, you may need to update your udev rules. Add the following lines to /lib/udev/rules.d/60-steam-input.rules as root, if they’re not already there (it may also be 70-steam-input.rules):

# PS5 DualSense controller over USB hidraw
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6", MODE="0660", TAG+="uaccess"

# PS5 DualSense controller over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="*054C:0CE6*", MODE="0660", TAG+="uaccess"

After this you will need to either restart your computer or reload the udev rules and reconnect the controller:

sudo udevadm control --reload-rules && sudo udevadm trigger

The DualSense is now one step closer to perfection. This, along with the Series X pad, is still going to need some more time in the oven though, before I tell you which gamepad is better on Linux. The gyro is definitely a big plus in my book, which the Xbox pad doesn’t have, so I may be leaning a bit more towards Sony’s side…

Do you have a DualSense? How has it been working for you so far? Let me know!