PS3 controllers over Bluetooth

I’ve fiddled in the past and got ps3 controllers working over Bluetooth but inevitably an update or system change breaks it. Does anyone have a fully or near fully declarative way to get ps3 controllers working over Bluetooth with nixos?

Not really, since the pairing process is bilateral.

I’m not sure about the exact details of PS3 controllers and how it may differ, but my PS4 controller works well with nixos after pairing it once using bluetoothctl and setting it as trusted — after that I can turn it off using the disconnect command in bluetoothctl and reconnect it by pressing the button with the playstation logo on it.

2 Likes

Yeah, that makes sense.

I’ve had the controller working much like you said in the past, but updates often times seem to screw it up. I’ll give it another go and see what happens.

Thanks!

1 Like

I was playing around with getting a PlayStation 3 controller working over Bluetooth and I put together a blog post about how to do it:

The trick is to enable the plugin for the PlayStation 3 and PlayStation 4 controller in bluez. I sent a PR to nixpkgs enabling this, and I explain a little about it in the blog post.

4 Likes

Thanks. Following this made my controller work perfectly again.

1 Like

Hey @aanderse, what type of bluetooth adapter do you use? I have a DualShock 3 controller, but I heard that generic bluetooth adapters won’t work.

Sorry for the necro, by the way.

FYI: With using bluezFull, i was able to connect my ps4 controller and it worked in (Steam) game, but it is not able to connect a second time when i power it on again.

Dec 16 00:29:33 gaming bluetoothd[1088]: Authentication attempt without agent
Dec 16 00:29:33 gaming bluetoothd[1088]: profiles/input/server.c:auth_callback() Access denied: org.bluez.Error.Rejected

This answer says the issue happens when the device is not trusted, but i had paired it successfully. Also, i don’t accept a CLI solution since gaming should work without using it.

I solved the issue by having the bluetooth settings open (which enable discover mode) and power the controller on. Now it connects directly when i power it on, without having the window open.

bluetoothctl trust should work.

Desktop support for that is an issue to take to your desktop – they should probably provide a “trust this device” or “allow this device to connect automatically” knob corresponding to that command.

1 Like