Xbox 360 controller works only right after plugging

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:

  1. Launch Steam and connect gamepad.
  2. In Steam, launch the controller settings window (Steam -> Settings -> Controller -> General Controller Settings).
  3. Select the controller in the list, and click the "Identify" button. The controller should vibrate, but does not.
  4. Unplug the controller, then plug it again.
  5. 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!

Hi, I can reproduce what you wrote.
Tested on stable and beta steam client. Also it doesn't matter if you use big picture mode or not, since I first thought it might have to do with it, because the controller configuration starts big picture.

I'm getting some weird output when running steam from the terminal, mainly a message spam of failed dbus connections which look like this:

dbus error

process 4052: arguments to dbus_connection_unref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file ../../dbus/dbus-connection.c line 2794.
This is normally a bug in some application using the D-Bus library.

Digging a bit through the terminal output I got this when I opened the controller settings:

Loaded Config for Local Override Path for App ID 413080: /home/geggo/.local/share/Steam//controller_base/empty.vdf

and this after replugging the controller:

OnFocusWindowChanged to window type: k_nGameIDControllerConfigs_Desktop, AppID 413080
Loaded Config for Local Override Path for App ID 413080: /home/geggo/.local/share/Steam//controller_base/empty.vdf

I found a similar issue report on steam
and on the arch forums
But there seems not to be any solution and I couldn't find a bugreport about it.

Forum kindly sponsored by