DualSense Controller on Linux: Works Well with Some Limitations

dualsense controller on linux

UPDATE (11/05): Added a video showcasing the playability of the DualSense:

Do you ever get that impulse to buy that new, shiny electronic device on a whim? Just get in the car and drive the fifteen or thirty minutes to get to Walmart or Best Buy and buy it, without waiting the two or three days when ordering online?

You know where this is going. After learning that Sony’s new DualSense controller for the PlayStation 5 has been released prior to the console itself, and discovering that it’s compatible with devices other than Sony’s own, I immediately went to my local Target store after getting an oil change for my car.

Heh… the amount of time that you spend at the electronics department, viewing every sort of gadget that the store has. It’s everybody’s little toy store. That shot of endorphins that spike to your head after buying the device, taking it home, and unboxing it for the first time. And taking pictures of it for the sake of review, like this one.

dualsense controller box

The closest Best Buy that had it in stock was almost 50 miles away. GameStop simply said on their site, “Unavailable” for pickup. And Walmart didn’t have it either, at least when looking it up online. I’m not sure if this is because Sony sent out only a limited number of units, or people are just grabbing them as soon as they’re on the shelf. Fortunately, when I thought I was all out of options, I realized there’s a Target not too far off from the dealership I was at, and when going to Target’s website, the store said it had some in stock.

“Any idea why they’re selling the controller before the console?” one of the Target employees asked me as my item was being checked out.

I shrugged. It was a good question but I didn’t know the answer either. The PS5 isn’t coming out until next Thursday, on the 12th, in the US and Japan. But I was definitely flabbergasted that I got my hands on the controller.

Some might wonder why I chose this over the Xbox Series X controller. No answer, really, other than it’s not available until next week. I honestly think, however, that in terms of the PC landscape, I would have been better off getting the Series X gamepad, because:

  • Many games work better out of the box with Xbox gamepad support, whether this is on Windows or Linux. Generally speaking, some games require a bit of tinkering with the controls in order to get them the way you want with Sony’s controllers
  • Although some titles have in-game PlayStation-style button prompts, many others only have Xbox-style buttons, which can leave some people confused as to what button to press
the back of the dualsense controller box

The Series X controller is also $10 cheaper than the $70 price tag the DualSense (here on referred to as DS) carries. Doesn’t make much of a difference for me though. Here, I take a look at the DS, and explain how well it works on Linux. Heh, and for all I know, I might pick up a Series X pad next week and take a look at that as well.

The Aesthetics

The easiest way for me to explain this is by comparing the appearance of the controller with the DS4. Gone is the all-black coloring scheme. It’s hinted at here and there where the thumbsticks and grips are, as well as the shoulder buttons/triggers, but this time around it’s mostly pearl white. The directional pad, as well as the four face buttons (Cross, Circle, Square, Triangle), are translucent and offer no color in contrast with the green, purple, blue, and red accents of the previous generation. The buttons for Share and Options are similar to where they were on the DS4, but the labels have been replaced with symbols: a hamburger icon to the right of the trackpad, and a couple of lines to the left that look similar to the lines shown when displaying a flashlight. The latter button has actually been changed to the Create button. Sony has been a little vague on what exactly this button will do, but it seems similar to what the Share button does:

We’ve built upon the success of our industry-first Share button to bring you a new “Create” button feature. With Create, we’re once again pioneering new ways for players to create epic gameplay content to share with the world, or just to enjoy for themselves. We’ll have more details on this feature as we get closer to launch.

DS controller front

Much like the DS4, the DS includes a clickable trackpad that’s ever so slightly wider, a gyroscope, and clickable twin thumbsticks towards the bottom. The speaker is also present above the PS button, and the PS button itself is simply the PlayStation logo rather than a circle with the logo printed on it. Below the PS button lies a microphone indicator LED (yup, it’s got a built-in mic). When it’s lit, the mic is muted. Well, at least on the PS5 anyway; on Linux muting the mic through the sound settings won’t light up the LED. And further below the mic LED is a 3.5mm headphone jack in which a user can connect headphones.

Surrounding the trackpad is a thin line that communicates either orange or blue LEDs. When the device is charging via a USB-C cable (not included with the box), the LED gently glows orange, then dies down, then goes back up again. When pressing the PS button, it briefly flashes blue when trying to connect to a device. Rapidly flashing blue means the DS is in pairing mode. Solid blue means the device is connected. Again, very similar to the colors and patterns of the DS4.

DS controller top

I’m glad the controller uses USB-C now in contrast to the micro USB standard the DS4 used; I have a lot more devices that use USB-C for connectivity and it’s nice not having to use a different adapter for each controller that I have.

For the brief amount of time I used it so far, it feels very good on the hands. It’s very similar to the size of the DS4 — here I’ve compared the sizes of the controllers:

DS4/DS size comparison

Weight-wise, it’s ever so slightly heavier than the DS4 (7.4 ounces) at about 10 ounces — if anything it probably has to do with the higher capacity battery, which is 1,560 mAh and over 1.5 times the capacity of the DS4. One probably won’t notice much of a difference anyways.

Naturally, some may ponder what’s the point of getting the DS if it seems very similar to it’s predecessor. Well, in addition to the DS’s longer-lasting battery life and built-in mic, it also includes adaptive triggers and haptic feedback. The adaptive triggers will allow certain events to occur depending on how much pressure is put on them. Per the PlayStation blog post:

We…incorporated adaptive triggers into the L2 and R2 buttons of DualSense so you can truly feel the tension of your actions, like when drawing a bow to shoot an arrow.

In a vein similar to the triggers, the haptic feedback (or vibration) “adds a variety of powerful sensations you’ll feel when you play, such as the slow grittiness of driving a car through mud.”

I can tell you right now these features are kind of useless right now on PC, as the controller has just come out a few days ago and no developer in their right mind has already programmed their PC game to incorporate such features. But it’ll be interesting to see how they work when the PS5 comes around, and hopefully developers will have access to development kits that will enable this to work on the PC side later on.

DS back

Does It Work?

Mostly. That’s why I say DS support on Linux right now is good and not great. Using kernel 5.8.16 and Pop!_OS 20.10 (I’m deliberately avoiding kernel 5.9 due to the fact that NVIDIA hasn’t supported it yet), I plugged the controller into my PC via USB-C and it worked out of the box. Using jstest-gtk, I tested the gamepad by pressing the buttons and all the appropriate boxes/axes lighted up. The more advanced features of the device, such as vibration, haptic feedback, gyro, etc. haven’t been working for me, as far as I’ve tested. You’ll definitely get the basic functionality of the device though, and for most people, that should be enough.

Pairing the DS to Bluetooth was smooth sailing. It’s similar to how it’s done with the DS4: hold the PS button and the Create button at the same time for a few seconds, and the blue LEDs will flicker. My desktop detected the controller, and I was able to pair it successfully, without any hiccups. After configuring the controls and duking it out on Super Smash Bros. Melee online with Dolphin/Project Slippi, there was no input delay whatsoever. Very pleasing results!

One great benefit is, based on my testing so far, it seems the DS uses XInput rather than the older DirectInput standard that Sony has carried long into their line of controllers. As such, I am no longer needing to force my Steam games to use Steam Input. Some examples of games that I no longer need to force Steam Input are Slap City and Grounded. This also means less of a pain in the tookus when getting the gamepad to work nicely with your game.

The catch here, is that because the DS isn’t officially supported in the kernel (to my knowledge) or in the Steam client, I had to reconfigure my controls through Big Picture Mode. I found that A, or Accept was mapped to Square, B or Back was mapped to Cross, and Circle didn’t seem to do anything. It was a bit of a hassle configuring the controls, as I had to individually click each button in the interface and assign them a value rather than going through them all by just button-pressing.

Couple of things that I found both neat and strange. For one thing, the microphone. It actually works pretty good! Using audio-recorder, I left the microphone sensitivity at 50%, brought the controller to my mouth, and started speaking. The results were pretty solid. Recording again at 100%, this was way too loud and it would be better off leaving the controller on the desk or in your hands on your lap rather than bringing it to your mouth.

Sample recording with DS mic

As for the strange part, recall that I couldn’t get vibration working in-game. Well, going to Pop!_OS’s sound settings, I found an option to set the DS’s speakers as an output device. Then I listened to some tunes. The gamepad vibrated according to the sound! So, for instance, light sounds left a light vibration on the pad. Deeper bass sound effects made a stronger vibration. Get a dubstep song going on, and I suppose you got yourself a vibrating speaker device. So while it’s missing the in-game cues for vibration, at least it’s working for audio. I’d imagine this could be a quick fix when the appropriate driver has been written for the controller.

As for sound output through these speakers, it’s very faint. You have to bring your ear to the speakers to make anything out. Increasing the volume in the sound settings won’t have an impact. But it’s something, anyway. I should also note that the speaker and mic only work when the DS is connected via USB-C cable. When connected via Bluetooth, the options disappear in the sound settings.

No battery indicator. I tried using ds4drv, as well as see run upower -e in the terminal. ds4drv ran into an error when detecting the device, and upower -e didn’t present any controllers. So I’ve got no idea when this thing will shut down. The controller doesn’t automatically shut off after a set amount of time when no buttons have been pressed, but can still be manually turned off by holding the PS button for roughly ten seconds, just like how it’s done with the DS4.

Now here’s the thing about the triggers. So far, with the games that I’ve tried, the triggers are only registered as a full press, whether in wireless mode or through a wired connection. You can’t press them halfway and expect half the gas put on the pedal. In the brief time I played DRAG with this, I honestly didn’t have much of a problem, but other players may find this to be an annoyance. Strange thing is, when testing the triggers with jstest, the axes responded according to the pressure I put on them. This is probably due to the fact that Steam uses a different controller API for handling gamepads.

The trackpad…it’s not working for me, although, jstest reports it as a button press when clicking it. Typically, you can use the trackpad on the DS4 to mimic mouse movement and mouse left-/right-clicking. Not so much the case with the DS. Again, this is one of those things where we will likely have to wait for official driver support before it’s working.

As for gyroscope functionality, I didn’t expect this to work out of the box either, but I don’t know of any games that I could try that could make use of it. There aren’t any options in Steam Big Picture Mode to configure gyroscope functionality. Even if there was a way, I wouldn’t be surprised if it doesn’t work. Come to think of it, I never bothered trying to get the gyroscope to work with the DS4.

Summary:

The good:

  • Good quality material that feels good in your hands, not too small and not too large
  • Great battery life based on my usage so far
  • Good quality built-in mic and… vibration for sound output?
  • Newer XInput standard for better compatibility with games

The not-so-good:

  • Can’t currently determine battery life percentage
  • Missing trackpad functionality
  • No pressure sensitivity on triggers
  • No gyro functionality…as far as I’m aware

I’m actually amazed at how well this gamepad already works on Linux. And I know that a lot of the cons I pointed out are because of the fact that there’s simply no official support for the DS either in the Linux kernel or Steam itself. Hopefully we’ll get official support for it in a future kernel or from Valve so we can get the more advanced features working.

Meantime, I won’t just be using the DS on Linux; I’ll be using it on the Nintendo Switch too. Small world that we live in. And who knows…maybe I’ll take a look at the Series X controller when that comes out.

4 4 votes
Article Rating
cow_killer

cow_killer

Subscribe
Notify of
guest
3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Ekianjo

very timely review! The added microphone in the gamepad is a very nice idea.

[…] DualSense Controller on Linux: Works Well with Some Limitations – Boiling Steam […]

Marcos Alano

I could configure gyro as mouse (just for test purposes, of course) on DualShock 4 but didn’t work on DualSense. Also touchpad didn’t act as a mouse. I suppose can be something related to how the controller is recognized by Linux, but I don’t have how to know for sure. I looked inside kernel’s source and no reference to DualSense, so I think we need sometime until that.