LutrisToSunshine
September 1, 2026 · View on GitHub
Import games from Steam, Lutris, Heroic, Bottles, Faugus, Ryubing, RetroArch, and Eden into Sunshine, add SteamGridDB covers, and stream headlessly from an isolated virtual display.
Supported Launchers
- Lutris, Heroic, Steam, Faugus: native and Flatpak
- Bottles, Ryubing: Flatpak
- RetroArch: native and Flatpak
- Eden: AppImage and native binary
Quick Start
git clone https://github.com/Arbitrate3280/LutrisToSunshine.git
cd LutrisToSunshine
pip install -r requirements.txt
Make sure Sunshine is running, close Lutris before scanning (other launchers can stay open), then:
python3 lutristosunshine.py
Options
| Flag | What it does |
|---|---|
--all | Import all detected games without prompts |
--cover | Download SteamGridDB covers for imported games |
--sunshine-host | Override the Sunshine/Apollo web UI host |
--sunshine-port | Override the Sunshine web UI port (usually 47990) |
Ignoring sources
Run python3 lutristosunshine.py ignore to toggle which detected sources are scanned. Ignored sources are never listed, in normal runs or with --all.
Virtual Display
Run python3 lutristosunshine.py display to open an interactive menu for managing headless streaming in a separate Sway session. Audio and input stay isolated from your main desktop, so you can keep using it while someone streams a game.
The menu includes:
- Setup/update — installs the Sway+Sunshine stack and reconciles your game apps
- Display sync — match the client's resolution and FPS, set a custom mode, or lock a fixed resolution
- GPU selection — pick which GPU drives the virtual display (for multi-GPU setups)
- Renderer — toggle between GLES2 (stable, broad support) and Vulkan (HDR capable)
- MangoHud FPS limit — dynamically cap FPS to the client's refresh rate
- Service controls — start, stop, or restart Sunshine for the virtual display
- Status dashboard — health overview, input isolation state, and more
- Advanced tools — logs and full teardown
Requires sway.
Binary Release
chmod +x lutristosunshine
./lutristosunshine --all --cover