I'm having the same issues on Arch, Kde Plasma
Having the same issue with Dune Awakening. Tested on Bazzite 43 with June 19th Steam Beta client & proton experimental.
Adding a kernel-side data point that I haven't seen mentioned in the Triton/2026
threads yet: the in-kernel hid-steam driver has no device ID for the puck's
28de:1304, so on the desktop the puck binds to hid-generic and stays in
lizard mode (it exposes Keyboard/Mouse input nodes instead of being claimed by
hid-steam).
Verified on a current kernel (Arch/CachyOS, 7.1.3-1-cachyos):
$ lsusb | grep 28de
Bus 001 Device 021: ID 28de:1304 Valve Software Steam Controller Puck
# all HID interfaces fall back to hid-generic, none claimed by hid-steam:
$ for d in /sys/bus/hid/devices/*28DE*1304*; do \
echo "$(basename $d) -> $(basename $(readlink -f $d/driver))"; done
0003:28DE:1304.0016 -> hid-generic
0003:28DE:1304.0017 -> hid-generic
0003:28DE:1304.0018 -> hid-generic
0003:28DE:1304.0019 -> hid-generic
0003:28DE:1304.001A -> hid-generic
# resulting input nodes = lizard mode (keyboard/mouse emulation):
Valve Software Steam Controller Puck Keyboard
Valve Software Steam Controller Puck Mouse
# hid-steam only knows the old SC + Deck, not 0x1304:
$ modinfo hid_steam | grep -io '28DE[^ ]*' | sort -u
28DEp00001102
28DEp00001142
28DEp00001205
This matches mainline: drivers/hid/hid-ids.h in torvalds/linux currently only
defines USB_DEVICE_ID_STEAM_CONTROLLER (0x1102), ..._WIRELESS (0x1142) and
..._STEAM_DECK (0x1205) — there is no 0x1304.
I understand the in-game issues tracked here are largely userspace/config-side,
and that Steam talks to the device directly over hidraw regardless of the kernel
driver. But for desktop / non-Steam use, the puck being stuck in lizard mode
comes down to hid-steam not claiming 0x1304. It would be great if the 2026
controller/puck could get proper hid-steam support upstream (device ID plus
whatever report handling it needs to disable lizard mode), the same way the Deck
did. Happy to test patches — I have the hardware.
proton experimentalx1 2026-06
Summary
The Steam Controller 2 (codename Triton, puck mode
28DE:1304) shows raw action text (e.g. "Gamepad Face Button Right") instead of button glyphs in ISteamInput games on Linux desktop. The same games show proper glyphs with other controllers (GameSir G7 Pro → Xbox glyphs, PS4 → PlayStation glyphs).Environment
28DE:1304 Valve Software Steam Controller Puck)Steps to Reproduce
Expected Behavior
Button glyphs matching the SC2's hardware (or at minimum Steam Deck-style glyphs via shared images).
Actual Behavior
Raw text strings like "Gamepad Face Button Right" appear instead of any glyph.
Root Cause Analysis
Two related gaps:
1. Missing
triton_glyph images in Steam client~/.local/share/Steam/controller_base/images/api/dark/contains image sets for:sc_(gen-1 Steam Controller),sd_(Steam Deck),ps4_,ps5_,xbox_,xbox360_,shared_, and others — but notriton_prefix exists. Valve has not shipped SC2-specific glyph images.2. Games compiled with pre-SC2 Steamworks SDK don't know SC2 action origins
The public Steamworks SDK (
SteamInput001) hask_ESteamInputType_Count = 13with no Steam Deck or Triton entry. WhenGetInputTypeForHandle()returns a new type value (≥13) for the SC2, games built against the old SDK callGetStringForActionOrigin()on unrecognized origins and display the raw string instead of a glyph.3. Deck PCB serial registration error on Linux desktop
Controller log emits
Deck Controller PCB Serial# invalid: NAon every SC2 connection (8+ times per session). Steam attempts to register the SC2 via the Steam Deck hardware path and fails. Configsets ARE loaded correctly afterward (configset_controller_triton.vdfandconfigset_controller_neptune.vdfboth found on-disk), but the repeated error suggests the initialization path for SC2 on desktop Linux is following Deck-specific code that doesn't apply here.Controller Log Excerpt
What Has Been Tried
1172710→controller_neptune_gamepad_joystick.vdfentry toconfigset_controller_triton.vdf— glyphs still show as textUseSteamControllerConfig = "2"for app 1172710 inlocalconfig.vdf— no changecontroller_type = "controller_neptune", which is a type mismatch for Triton hardwareRequested Fix
triton_*glyph images incontroller_base/images/api/(matching the SC2's button layout, similar to howsd_*covers Steam Deck-unique buttons whileshared_color_button_*covers ABXY)k_EInputActionOrigin_Triton_*constants so newly-compiled games can reference them directlyTranslateActionOrigin(k_ESteamInputType_Unknown, triton_origin)maps SC2 origins to the nearest Neptune/shared equivalents for backward compatibility with games compiled against older SDKsDeck Controller PCB Serial# invalid: NAerror for desktop Linux — SC2 should not be going through the Deck hardware registration path on a non-Deck systemRelated