A headless companion, a small web UI for adding Steam shortcuts (with SteamGridDB artwork) from another device, while the target machine stays in Steam's Game Mode. Just add rom, restart Steam and play.
Note
Flathub repo is needed for RetroArch, apps and emulators.
- Add streaming or any websites as a Steam shortcut
- Retrieve game or app artwork from SteamGridDB vast community database (you'll need to provide your own API key)
- Install other game launchers and apps
- Upload retro games roms and SS will take care of looking for artwork and adding Steam shortcut
- Upload .isos, keys and firmware files from SS for modern console games.
- Add/edit your non Steam shortcuts
- Web UI running from your Steam Deck / Steam Machine in game mode, desktop mode is only needed to install app
- Screen code authentication
- Install emulators from flathub and appimages from developers source
- Auto update flatpak
- Convert .nsz Switch roms to .nsp automatically so Ryujinx/Eden can load them
- Automatic overscan cropping for N64 games in RetroArch
- 3D consoles at RetroArch and at Emulators tab render at 1080p by default (one step lower on a Steam Deck). A resolution you set yourself is never overridden.
- Optional preflight toggle to make controllers work without having the need to get into emulator settings.
Run on your terminal
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo && flatpak remote-add --user --if-not-exists selfsteam https://raw.githubusercontent.com/ScarletPachydermDev/SelfSteam/master/packaging/io.github.ScarletPachydermDev.SelfSteam.flatpakrepo && flatpak install --user selfsteam io.github.ScarletPachydermDev.SelfSteam
SelfSteam doesn't vendor code from any of these, but real behavior/patterns here were confirmed by actually reading their own source, not guessed -- each one credited in the relevant file's own comments too:
- ChimeraOS -- the pairing-code auth screen's layout (
chimera_app/authenticator.py) and the confirmed reason Steam needs to be fully stopped before writingshortcuts.vdf(its own periodic re-save silently clobbers an in-place edit). - emerytech/couchside -- the same no-accounts, code-on-screen pairing pattern.
- ChimeraOS/gamescope-session (its bundled
gamescope-fgtool) -- theSTEAM_GAME/GAMESCOPECTRL_BASELAYER_APPIDX11 mechanismgamescope_splash.pyreimplements directly, so this has no runtime dependency on it being installed. - Jellyfin's own Flatpak -- confirmed the real, working shape for a background-service Flatpak (a sandbox can't touch
~/.config/systemd/user/systemctlitself, so setup has to happen through an escape hatch or a copy-paste script). - SteamGridDB/steam-rom-manager -- Artwork source and
_ra_guess_name_from_filename's ROM-filename cleanup is a ported version of its ownfuzzy-matcher.ts. - mateussouzaweb/nicedeck
bitcoin: bc1qw5d4wyc4szjz28e6tafmpd4u9flgqqnjlwuwd8
monero: 89GucTETmNEUVdbF3HYWYC8Gi3mFdUFvyEaa545E4S8ahq2MfXmGgMzS5q9Kx6k3DG943gXFbn4ECTQFf8Coe5qyEfwxAdM
