- Python 93.4%
- Shell 6.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
get_eden_command only probed a native 'eden' on PATH and AppImages, and get_eden_game_dirs only read ~/.config/eden/qt-config.ini, so an Eden installed as a Flatpak was never offered and its games -- registered in the sandboxed ~/.var/app/dev.eden_emu.eden/config/eden/qt-config.ini -- would not have been listed even if it were. Probe 'flatpak info dev.eden_emu.eden' first like Cemu does, read every existing qt-config.ini (Flatpak and native merged), and emit FLATPAK_ID plus process-name detect hints for Flatpak runs. Verified against a live Flatpak install (game listed, launch command built); 364 tests pass and pyflakes is clean. |
||
| .github | ||
| config | ||
| display | ||
| launchers | ||
| punktfunk | ||
| sunshine | ||
| tests | ||
| utils | ||
| .gitignore | ||
| AGENTS.md | ||
| LICENSE | ||
| lutristosunshine.py | ||
| README.md | ||
| requirements.txt | ||
LutrisToSunshine
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
Imported games carry process/install detection hints (Steam app IDs, Flatpak IDs, executables, install directories, process names) derived from launcher configs, so Punktfunk can reliably recognize a running title.
Options
| Flag | What it does |
|---|---|
--all |
Import all detected games without prompts |
--cover |
Download SteamGridDB covers for imported games |
--sunshine-host |
Override the Sunshine/Punktfunk management host |
--sunshine-port |
Override the Sunshine/Punktfunk management 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