Confused on Steam Play and Proton? Be sure to check out our guide.
Map controller buttons to controller thumbstick axes
gzuk Jan 6, 2023
Hi, I'm on Linux Mint and bought a generic controller (WhiteShark "Hunter"), for which only a Windows driver is provided. The controller has a PlayStation layout, with the 2 thumbsticks next to each other. On Linux and Steam however, it's wrongly recognized as "Microntek", with an Xbox / Switch layout, where the 2 thumbsticks are asymmetrical and separated by the directional buttons. The problem is that the 2nd thumbstick is mapped incorrectly: the X axis to buttons 3 / 1, and the Y axis to buttons 0 / 2. Nothing is in turn mapped to the actual 2nd thumbstick input. That makes the controller useless for FPS games where you need 2 thumbsticks.

So, does anyone know a configuration tool on Linux or Steam that can map the button input to the thumbstick axes? I've tried qjoypad, jstest, sc-controller, and in the Steam launcher also the General Controller Settings, Big Picture Configuration, Desktop Configuration. However, they all seem to map buttons to other buttons only, or to other input actions entirely, and never to thumbstick axes. Or, if there's a way to configure this, I must have missed it.

Can I still somehow map buttons to axes? Many thanks in advance! 🙂
Pengling Jan 6, 2023
I don't have one of these myself, but I have encountered controllers on which you can change the input type by holding a particular combination of buttons whilst plugging it in. If you haven't already, before you end up going down any rabbitholes, it might be worth checking the documentation that came with the controller to see if this is the issue!
Nanobang Jan 7, 2023
Quoting: gzukThe problem is that the 2nd thumbstick is mapped incorrectly: the X axis to buttons 3 / 1, and the Y axis to buttons 0 / 2. Nothing is in turn mapped to the actual 2nd thumbstick input. That makes the controller useless for FPS games where you need 2 thumbsticks.

So, does anyone know a configuration tool on Linux or Steam that can map the button input to the thumbstick axes?

I'm a bit confused about just what you're wanting to do. Are you wanting to:

  • 1. Make the 2nd joystick behave like a joystick instead of like a Dpad or button pad?

  • 2. Map buttons onto the joystick axes?

  • 3. Map the joystick axes onto the buttons?

I'm pretty sure all that's doable in Steam's own driver. Let me know which you're looking to do---or if youj want to do something else entirely---and I can probably get you to where you're wanting to be. :)

Last edited by Nanobang on 7 January 2023 at 5:01 pm UTC
gzuk Jan 18, 2023
Hi, thanks for your answers.

@Pengling, your suggestion to have another look at the documentation led me to also look closer at the controller. I found it has an (undocumented) "mode" button, which changes the internal mapping inside the controller gadget itself. When "mode" is pressed, the second thumbstick is correctly mapped as a thumbstick, and then you can easily map the directions, with qjoypad, and also with the Steam tools. Now everything works.

@Nanobang, sorry if I wasn't clear enough. My point was that the 2nd thumbstick was not picked up as a directional input at all, but as 4 different buttons instead, and then you cannot map it onto a directional input. You cannot do that with any mapper apparently, not even with Steam's, because a directional input ("no throttle" in qjoypad) is different to buttons internally. Like the Steam mapper doesn't ask you for "left" and "right", but only for one "axis" and the other direction is inferred. As a workaround before discovering the "mode" button though, I was able to map the working 1st thumbstick as 2nd-thumbstick-input, and then use the WASD keys for movement, so I had both and could at least play the games.

So in summary, if anyone out there has a WhiteShark controller and the 2nd thumbstick isn't picked up on Linux, then you just have to press the "mode" button, and it will be picked up. And if it's still wrong, you can then easily map it with qjoypad or the Steam mapper.
Pengling Jan 18, 2023
Quoting: gzukHi, thanks for your answers.

@Pengling, your suggestion to have another look at the documentation led me to also look closer at the controller. I found it has an (undocumented) "mode" button, which changes the internal mapping inside the controller gadget itself. When "mode" is pressed, the second thumbstick is correctly mapped as a thumbstick, and then you can easily map the directions, with qjoypad, and also with the Steam tools. Now everything works.
Sweet - I'm glad that it worked out! What you describe was what I expected, though I haven't yet encountered a controller with a dedicated button for this.

At least it didn't demand any over-complicated hoop-jumping in the end.
Klaas Jan 19, 2023
Quoting: Penglingthough I haven't yet encountered a controller with a dedicated button for this.
I've got a Logitech F310 that uses a sliding switch which seems to be the best solution. Pressing a button every time the gamepad is connected to switch modes like on the 8BitDo products seems cumbersome.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.