On second thought, I'm guessing I should have logged this under the SteamOS issue tracker, so I'm going to close this in favour of https://github.com/ValveSoftware/SteamOS/issues/2697 (fyi @kisak-valve)
@sammcj, this issue should be evaluated first on the Steam Input side, not the distro side. The issue report was transferred to the steam-for-linux issue tracker for that reason (https://github.com/ValveSoftware/steam-for-linux/issues/13485#event-29003399684).
Oh I completely missed that! Sorry for recreating it 😬.
I'm guessing this is reproducible for everyone that owns the new Steam Controller and runs SteamOS, but if there's anything I can do to help debug the issue or test a fix, please don't hesitate to let me know.
Can you post your logs from the SteamOS client? Or provide your SteamID/profile and go to Settings->System->Advanced->Create a system report
Steam ID: protoporpoise, system report submitted.
From your logs there's a lot of messages about suppressing steam updates in the bootstrapper log, ex:
[2026-08-02 17:54:09] Suppressing Steam update
Do you have a Steam.cfg file that inhibits updates in your Steam folder?
I deleted the steam.cfg and restarted. No SteamOS or Steam Client update were offered, but a firmware update for both the controller and the puck then appeared.
The blobs look like they were built just over a week ago but were never offered in the UI until clearing the file.
After flashing both, the controller now correctly detects as a Steam Controller rather than a Steam Deck.
Hopefully a case closed on this one! Thank you for your time.
Do you know how the steam.cfg file got there?
Steam Controller (2026) is detected as a Steam Deck —
steamdeck_*client branch is missing Triton support present in the generic clientSummary
On SteamOS's bundled version of Steam, the Steam Controller (2026) is detected and rendered as a Steam Deck rather than as a Steam Controller — Deck name, Deck glyphs, Deck configuration templates.
The same controller, on the same machine, is detected correctly by the generic Steam client (if say an additional copy of Steam was installed from Flatpak).
The cause is that the
steamdeck_*client branch SteamOS pins itself to has essentially no "Triton" support, while the generic client branch has it in full.Environment
BUILD_ID 20260716.2), beta branch6.16.12-...-neptune-6161785347151(2026-07-30), branchsteamdeck_publicbeta28de:1302, wireless puck28de:1304Steps to reproduce
Evidence
Comparing the SteamOS-pinned client against the generic client (Flathub
com.valvesoftware.Steam), installed side by side on the same machine:steamdeck_publicbetasteamclient.sostrings matchingTritonsteamuicontroller typesgordon,neptune,unknowngordon,neptune,triton,unknownThe generic client carries the full feature set —
CSteamInputService_GetTritonPairingInfo,TritonBond_t,CTritonQosStatus,CJobTritonBase,CSteamInputService_ShouldTritonPairInOobe. The SteamOS branch contains exactly one Triton string,CSteamControllerTritonPacketAbstraction, and nothing else.In
steamui, the generic client's controller-type table includes a dedicated Triton entry:The SteamOS build's equivalent table has no such entry and stops at Neptune:
With no Triton entry, the controller falls through to the
default:arm of the type-resolution switch, which is grouped withcase 4(Neptune):So on this branch any unrecognised controller type renders as a Steam Deck.
Consistent with that,
controller.txtreads the USB descriptors correctly (Manufacturer: Valve Software,Product: Steam Controller Puck) but every configuration lookup then resolves to a Deck template:Steam also routes the controller through the Deck hardware-registration path, with
BYieldingRegisterSteamController/BYieldingCompleteSteamControllerRegistrationfiring repeatedly, and fails to create a per-controller config set:Controlled comparison
Installing the generic client alongside (
flatpak --user install flathub com.valvesoftware.Steam) and connecting the same controller to the same machine, it is identified correctly and immediately. Same kernel, same udev rules, same controller, same puck — the client branch is the only variable.Note that the generic client here is on stable, and is nonetheless newer than the SteamOS beta. Client versions are Unix timestamps and compare directly:
steamdeck_publicbeta1785347151betafile)1785799196The five-day gap is not itself the explanation for a controller released in May 2026 — Triton support appears never to have been merged into the Deck client lineage at all.
Ruled out
inactive (dead); not involved.60-steam-input.rulesmatches VID28deby wildcard, and70-steam-jupiter-input.rulestags all hidrawuaccess.-steamdeckflag / session type —/usr/bin/steam-jupiterpasses-steamdeckin both the gamescope and desktop sessions, and the misidentification occurs in both. The fallback is in the type mapping, not the session.steamuipackage was current as of 2026-08-02; the relevant code path simply has no Triton entry on this branch.No user-side workaround
/usr/bin/steam-jupiterrewrites~/.local/share/Steam/package/betaback tosteamdeck_stablewhenever it is missing or set topublicbeta— that is, whenever it names either generic branch:Both the Game Mode and desktop sessions go through this wrapper, so the branch cannot be held on a generic client. The in-client update-channel menu offers only "Steam Deck Stable" and "Steam Deck Beta", and Stable is behind Beta, so neither exposed option helps.
Expected
The Steam Controller (2026) should be identified as a Steam Controller on SteamOS, with its own glyphs and configuration templates — ideally more promptly on SteamOS than anywhere else, given it is Valve's own hardware.