-
Notifications
You must be signed in to change notification settings - Fork 0
Frequently Asked Questions
Common questions about the architecture, gaming setup, and maintenance.
Traditional display managers conflict with Gamescope's requirement for exclusive display control. Replacing them with steamos_diy.service means:
- The service authenticates the session directly via
PAMName=login(no login prompt, no display manager).getty@tty1is masked. - The GPU is handed over cleanly before switching between Steam and Plasma.
- No background display manager processes consuming resources.
Yes, both open-source (NVK/Nouveau via Mesa) and proprietary NVIDIA drivers are supported. The installer automatically deploys the appropriate packages. For the best experience (HDR, advanced frame-pacing), AMD (Mesa/RADV) remains the recommended hardware.
Important
Proprietary drivers require DRM Kernel Mode Setting to work with Gamescope (nvidia-drm.modeset=1 on your bootloader). See the README for details.
Since there is no Desktop Environment behind Steam Mode, use the Linux Virtual Terminals:
- Press
Ctrl + Alt + F2to switch to TTY2. - Login and run:
steamos-session-select desktop
To use the per-game YAML profiles created in the Control Center, you must use the SDY Wrapper:
- Go to the game's Properties in Steam.
- In Launch Options, type:
sdy %command%. The system will automatically identify the game (via AppID or executable name) and apply the specific tweaks from~/.config/steamos_diy/games.d/.
Yes. sdy is binary-agnostic. It scans the executable path and looks for a matching YAML profile. You can use it with Heroic, Lutris, or standalone binaries.
This is expected on non-Valve hardware. We provide Compatibility Shims that intercept these calls and return a safe exit code to maintain Steam UI stability.
-
steamos-updateexits 7 (RAUC convention: "no update available") — Steam treats this as "up to date". -
jupiter-dock-updaterexits 7 (same RAUC convention — "firmware up to date"). - All other helpers (
jupiter-biosupdate,steamos-set-timezone,steamos-select-branch) exit 0 (success).
A write pattern (tmp file → fdatasync() → rename()) that ensures files like config.yaml and next_session are never left in a partial state after a power loss. The full protocol is documented in Utilities Engine.
- From Steam: Use the "Switch to Desktop" button in the Steam Power menu.
-
From the terminal: Run
steamos-session-select desktop. The logic handles the termination signals and ensures a clean transition to KDE Plasma.
This project is optimized for Pipewire. Ensure pipewire-alsa, pipewire-pulse, and wireplumber are active. Gamescope requires a functional Pipewire node to route audio from the containerized session to your hardware.
The project uses a non-destructive approach. We don't modify core system binaries. Standard updates are safe.
Important
If you update the Kernel, ensure your Early KMS is rebuilt so the driver loads before the steamos_diy service starts.
| Level | Path | Purpose |
|---|---|---|
| System | /etc/default/steamos_diy.conf |
Binary paths, log level, timeouts |
| User | ~/.config/steamos_diy/config.yaml |
Gamescope flags and global env vars |
| Game | ~/.config/steamos_diy/games.d/*.yaml |
Per-game overrides |
See Architecture for the complete filesystem hierarchy.
We use the System Journal. Use the following commands or check the Logs tab in the Control Center:
# Session logs (Gaming/Desktop lifecycle, crash recovery)
journalctl -u steamos_diy.service -f
# Full log stream including helper shims and backup/restore
# (helpers run outside the service cgroup, so -u alone misses them)
journalctl -t CORE -t STEAM -t SYSTEM -fIf you love this project, feel free to join and help me make it better!