A Games folder chosen in the Steam cog is scanned one level deep, one subfolder per game; the program to launch is the .exe named after the folder, else the largest, never an installer, redistributable or crash reporter, and the settings page lets the user pick another for any game. Each session the app writes the list, and bannerlator-steam-shortcuts puts the games into the client's shortcuts.vdf as non-Steam games (the client's own entries kept) with the appid the client itself derives, mapped to the ARM64 Proton through the compat registrar. They appear in the rail under Steam and launch by steam://rungameid/ like any title.
SteamDeck
Run Valve's native ARM64 Steam client on an Adreno Android device. Steam runs in a Linux runtime under proot, with gamescope and an in-app Vulkan compositor. Windows games use Valve's ARM64 Proton and FEX. A desktop with LXQt, Firefox, and emulators is also available.
Requirements and install
Use Android 9 or newer on a supported Adreno device (730 or newer, or 8xx). Mali, Xclipse, PowerVR, and Adreno 710 are unsupported. No root is required. Allow about 3 GB for the runtime and 1.1 GB more for the desktop and emulators. Install the APK from Releases, install the Linux runtime, then press Play and sign in. Steam downloads on first launch. Install Desktop & apps to use the desktop and emulators.
On Android 12+, if Steam exits without a log, turn off Restrict child processes in Developer options.
Build
Run tools/build_local.sh with Docker and the Android SDK/NDK installed. The APK is written to app/build/outputs/apk/release/app-release.apk. To install it on an attached device, run tools/deploy_local.sh.
Limits
Compatibility and performance vary by device; hardware validation is limited. Desktop compositing uses software rendering. Firefox sandboxing is reduced under proot. See the session logs in Download/SteamDeck/ when diagnosing problems.
Credits and licence
GPL-3.0. Runtime, shim, input, and controller work build on WinNative and Bannerlator (maxjivi05). See LICENSE. Steam and Proton belong to Valve Corporation; this project is not affiliated with Valve.