Clarification... On May 4th the Steam Beta Client was updated with the following note...
General
How would the Steam Linux Client be able to provide notifications without it being reported somewhere? I'm assuming that it's written somewhere in the 'everything is a file' linux filesystem.... I guess I'm also assuming the notification option also supports the Steam Controller.
If the controller battery/charging status is currently held somewhere other than /sys/class/power_supply, I'd appreciate learning about where that is so I can read/use it.
How would the Steam Linux Client be able to provide notifications without it being reported somewhere? I'm assuming that it's written somewhere in the 'everything is a file' linux filesystem.... I guess I'm also assuming the notification option also supports the Steam Controller.
The controller likely sends the battery data directly to the Steam client.
I usually use upower -d to display battery percentages so that I don't need to know the filesystem location.
I would also like this feature. According to AI research, here is what I've uncovered.
The real blocker (kernel/OS side): The battery currently does not reach UPower at all:
- /sys/class/power_supply/ has no steam* node.
- The hid-steam kernel driver — which is what creates that power_supply node — is not loaded, and more importantly its alias table only covers 28de:1102, 28de:1142, 28de:1205. Your puck is 28de:1304, so hid-generic claimed all 5 interfaces (DRIVER=hid-generic).
- The puck is just the wireless dongle; the battery lives in the gamepad and is only reported when a controller is paired and awake. The Steam client (running, PID 12591) talks to the puck in user space but does not expose battery over D-Bus.
Steam talks to the hardware entirely in user space, not via a kernel driver.
- The kernel only needs to expose a /dev/hidraw* node. hid-generic (the universal fallback) does that for every HID device, including your 28de:1304 puck — that's the 5 interfaces we saw bound to hid-generic → /dev/hidraw0..4.
- Steam opens those hidraw nodes with O_RDWR via hidapi/libusb and speaks Valve's proprietary wireless protocol over HID feature/input/output reports. The puck then relays wirelessly to the paired controller. No kernel driver involved.
Recognition is by Valve's vendor ID, maintained by Valve themselves.- The Steam client ships with an internal list of its own product IDs (Valve makes both the hardware and Steam), so it's always current with new PIDs like 1304. It enumerates USB/HID devices, matches VID 0x28de, identifies the puck, and runs its protocol.
- Permissions are granted generically by VID, confirmed in your /usr/lib/udev/rules.d/60-steam-input.rules:2,8:
- SUBSYSTEMS=="usb", ATTRS{idVendor}=="28de", ... TAG+="uaccess"
- KERNEL=="hidraw*", ATTRS{idVendor}=="28de", ... TAG+="uaccess"
- These match only the VID, so 1304 is covered without being explicitly listed anywhere.
Nothing extracted yet.
Your system information
tar -zcvf ~/Desktop/steam-logs.tar.gz ~/.steam/steam/logs]Please describe your issue in as much detail as possible:
Just received my Steam Controller today and wanted to update my conky with it's battery/charge status.
With my PS5 controller I can monitor...
I was unable to find any entries for the Steam Controller battery under /sys/class/power_supply; nor under the locations that I did find references to the controller:
Is the Steam controller not reporting it's battery status/charge to linux /sys?
Steps for reproducing this issue:
kernel: usb 1-2.3: new full-speed USB device number 27 using xhci_hcd
kernel: usb 1-2.3: New USB device found, idVendor=28de, idProduct=1302, bcdDevice= 3.07
kernel: usb 1-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: usb 1-2.3: Product: Steam Controller
kernel: usb 1-2.3: Manufacturer: Valve Software
kernel: usb 1-2.3: SerialNumber: ############
kernel: input: Valve Software Steam Controller Mouse as /devices/pci0000:00/0000:00:08.1/0000:c5:00.3/usb1/1-2/1-2.3/1-2.3:1.0/0003:28DE:1302.0221/input/input1004
kernel: input: Valve Software Steam Controller Keyboard as /devices/pci0000:00/0000:00:08.1/0000:c5:00.3/usb1/1-2/1-2.3/1-2.3:1.0/0003:28DE:1302.0221/input/input1005
kernel: hid-generic 0003:28DE:1302.0221: input,hiddev102,hidraw6: USB HID v1.11 Mouse [Valve Software Steam Controller] on usb-0000:c5:00.3-2.3/input0
Jun 10 15:13:10 AMD-Ryzen9-7940HS systemd-logind[751]: Watching system buttons on /dev/input/event12 (Valve Software Steam Controller Keyboard)
Jun 10 15:13:11 AMD-Ryzen9-7940HS kernel: input: Microsoft X-Box 360 pad 0 as /devices/virtual/input/input1007