Skip to main content
Version: v2.9.0

SteamOS

Zaparoo Core on SteamOS supports launching Steam games, EmuDeck, and RetroDECK from your Steam Deck.

File Paths

ItemPath
Config file/home/deck/.config/zaparoo/config.toml
Data directory/home/deck/.local/share/zaparoo
Log file/tmp/zaparoo/core.log
Mappings directory/home/deck/.local/share/zaparoo/mappings

Assuming the default deck account.

Install

In Desktop Mode, open Konsole and run:

curl -fsSL https://zaparoo.org/install.sh | bash

This installs all necessary components and sets up the service to run on startup. Since SteamOS has an immutable root filesystem, the installation is user-local (installed to ~/.local/bin).

To uninstall:

~/.local/bin/zaparoo -uninstall application
~/.local/bin/zaparoo -uninstall service
~/.local/bin/zaparoo -uninstall desktop
sudo ~/.local/bin/zaparoo -uninstall hardware

Readers

All readers are supported.

Launchers

LauncherSystemsNotes
SteamPCGames and non-Steam shortcuts
EmuDeck56+RetroArch and standalone emulators
RetroDECK200+Unified emulator frontend
KodiMediaVideos, movies, TV shows, music
Shell ScriptsAnyCustom .sh file execution

Steam

Launches games from your Steam library via the steam:// URL scheme. Both official Steam games and non-Steam shortcuts added to your library are detected.

Zaparoo also tracks when you start Steam games externally (from Big Picture or the desktop client), showing the currently running game in ActiveMedia.

Games are indexed from:

  • ~/.steam/steam/steamapps/
  • ~/.local/share/Steam/

To manually launch a Steam game, write steam://<app_id> to a token. For example: steam://1145360 for Hades.

config.toml
[[launchers.default]]
launcher = "Steam"
install_dir = "/custom/steam/path" # Optional custom Steam install directory

EmuDeck

Zaparoo automatically detects EmuDeck installations and creates launchers for each system. Games are launched through Flatpak to individual emulators (RetroArch cores or standalone emulators like Dolphin, PCSX2, etc.).

EmuDeck is detected when ~/Emulation/roms/ exists.

Default paths:

  • ROMs: ~/Emulation/roms/
  • Gamelists: ~/ES-DE/gamelists/

Supported systems include: NES, SNES, Game Boy, GBA, N64, NDS, GameCube, Wii, Wii U, Switch, 3DS, Genesis, Saturn, Dreamcast, PSX, PS2, PS3, PSP, Neo Geo, Arcade, and many more.

Games are discovered using ES-DE's gamelist.xml files for proper display names.

RetroDECK

Zaparoo automatically detects RetroDECK and creates launchers for each system. All games are launched through RetroDECK's unified CLI (flatpak run net.retrodeck.retrodeck <rom_path>), which handles emulator selection internally.

RetroDECK is detected when the net.retrodeck.retrodeck Flatpak is installed.

Default paths:

  • ROMs: ~/retrodeck/roms/
  • Gamelists: ~/retrodeck/ES-DE/gamelists/

RetroDECK supports any system folder that matches an ES-DE system definition.

Kodi

Launch media content from a Kodi instance running on your network.

Supported content:

  • Video and audio files
  • Movies and TV episodes
  • Music (songs, albums, artists)
config.toml
[[launchers.default]]
launcher = "Kodi"
server_url = "http://kodi:8080"

Replace kodi:8080 with your Kodi instance's address and web interface port.

Gaming Mode

Both EmuDeck and RetroDECK work in Steam's Gaming Mode. Zaparoo manages window focus through gamescope to ensure the emulator window is properly displayed when launching games.

Shell Scripts

Execute arbitrary shell scripts. Requires explicit allow list configuration for security.

System IDExtensions
Any.sh
config.toml
[launchers]
allow_file = [
"^/home/deck/scripts/.*\\.sh$"
]

Known Issues

  • Updates require stopping the service first: sudo systemctl stop zaparoo.service