When plugging my Xbox 360 controller, it seems like all the programs currently running on the system manage it correctly, including rumble features.
However, if a program is launched after the controller has already been connected, it will tend to lack part of the features that should be expected. While the basics (d-pad, buttons, partly joysticks) generally work, some advanced features are either missing entirely, most noticeably the rumble.
I can reproduce this behavior reliably by using Steam's controller settings:
- Launch Steam and connect gamepad.
- In Steam, launch the controller settings window (Steam -> Settings -> Controller -> General Controller Settings).
- Select the controller in the list, and click the "Identify" button. The controller should vibrate, but does not.
- Unplug the controller, then plug it again.
- Select the controller again, and click "Identify". This time, the controller vibrates.
Even after doing all of this, closing the settings window and repeating steps 2 to 5 will still yield the same results.
I have observed the same behavior with Stardew Valley (rumble does not work) and Slime Rancher (joysticks are inversed at best and erratic at worst, with poor deadzone detection).
However, if the gamepad is connected after the game has already been started, none of these problems occur.
I am using the Linux kernel's native xpad module for managing the controller, but I tested both xboxdrv and steamos-xpad-dkms and got into the same issues.
Does anyone have a clue about the reason behind this weird behavior?
Thanks in advance for your help!