protonscr

Custom Steam Input Settings not applied during remote play (streaming)

steamopen StreamingGeneral controller / Steam Input
ValveSoftware/steam-for-linux#11604 · opened 2024-12-27 by longshanks197 · updated 2025-11-26 · 2 comments · github
Llongshanks197 2024-12-27 github

Your system information

  • Steam client version (build number or date): 1733265492 (stable)
  • Distribution (e.g. Ubuntu): Devuan Testing/Excalibur (Debian)
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes
  • Steam Logs:
    steam-logs-LOCAL.tar.gz
    steam-logs-REMOTE.tar.gz
  • GPU: AMD Radeon RX 7800 XT

Please describe your issue in as much detail as possible:

I use an 8bitdo sn30pro for both Switch (in switch mode) and Steam (in xinput mode). When I use it with Steam (xinput), steam detects it as an xbox controller so I have the X/Y and A/B swapped using Steam Input programming to compensate for the nintendo layout. This has worked well and works totally fine when playing a game local. However, for the last month or so, when I use remote play from my downstairs machine to my more powerful upstairs machine, the steam input settings are not applied in game. The custom settings are still applied in the steam menus and when I test the inputs in settings but in game during remote play they are the default xbox inputs with A button and X button as the lower and left buttons.

Steps for reproducing this issue:

  1. Set custom input to swap A/B and X/Y Inputs
  2. Start local game, buttons match programming
  3. Exit local game
  4. Start a remote play game (streaming)
  5. In game buttons are no longer custom
  6. Open settings, test input, buttons are custom setting
  7. Return to game, no longer custom
Llongshanks197 2025-02-10 github

Update: I have installed the latest Beta: Steam Version 1738889325 and the issue still persists. Let me know if there is anything else I can provide to assist in resolving this issue.

Llongshanks197 2025-11-26 github

Update and more information. This has been almost a year with no information. I pulled some information from logs and attempted to add settings to my config.vdf to troubleshoot the issue. I pulled the latest log information and noted that a local controller (in controller.txt) gives the following information like this:

[2025-11-25 21:00:00] Local Device Found
type: 045e 02e0
path: sdl://12
serial_number: - 0
[2025-11-25 21:00:00] Manufacturer:
[2025-11-25 21:00:00] Product: Xbox One S Controller
[2025-11-25 21:00:00] Release: 0
[2025-11-25 21:00:00] Interface: -1

[2025-11-25 21:00:00] !! Steam controller device opened for index 0.
[2025-11-25 21:00:00] Steam Controller reserving XInput slot 0
[2025-11-25 21:00:00] SDL Mapping for 45e/2e0: 0500d6405e040000e002000000006800,Xbox One S Controller,crc:40d6,platform:Linux,a:b1,b:b0,x:b3,y:b2,dpleft:h0.8,dpright:h0.2,dpup:h0.1,dpdown:h0.4,leftx:a0,lefty:a1,leftstick:b7,rightx:a2,righty:a3,rightstick:b8,leftshoulder:b9,lefttrigger:a4,rightshoulder:b10,righttrigger:a5,back:b4,start:b6,guide:b5,steam:2,

The SDL mapping is as we expect (i.e. a is b1, b is b0).

I went ahead and added an entry on both the server and client machines into config.vdf under SDL_GamepadBind and restarted steam on both machines:

0500d6405e040000e002000000006800,Xbox One S Controller,a:b1,b:b0,x:b3,y:b2,dpleft:h0.8,dpright:h0.2,dpup:h0.1,dpdown:h0.4,leftx:a0,lefty:a1,leftstick:b7,rightx:a2,righty:a3,rightstick:b8,leftshoulder:b9,lefttrigger:a4,rightshoulder:b10,righttrigger:a5,back:b4,start:b6,guide:b5,steam:2

I then performed a streaming session from one machine to another and this was in the streaming log (streaming_log.txt) :

[2025-11-25 21:00:19][85506.680023] CLIENT: Sending HID device 045e/02e0/-1 Xbox One S Controller at sdl://3
[2025-11-25 21:00:20][85506.981286] CLIENT: SDL Mapping for 45e/2e0: 0500d6405e040000e002000000006800,*,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,crc:40d6,platform:Linux,

The GUID is the same as the local device but the SDL mapping from the client machine (doesn't matter which direction) is defaulting back to a generic mapping, not the custom mapping that the local machine is receiving. I don't know where the SDL mapping string is coming from when there is a streaming session versus a local controller. In my simple brain if a local controller is connected and setup then the SDL mapping for that local controller should match the local configuration, not a different one. That custom local configuration should be the same SDL mapping string sent to the remote machine. I am looking for some input from the dev team on how this works and I am more than happy to troubleshoot and provide more details. This used to work perfectly and it stopped working at some point.

Launch options