Transform any Arch Linux machine into a dedicated gaming console using systemd, supporting AMD, Intel, and NVIDIA hardware.
SteamMachine-DIY replicates the SteamOS ecosystem on Arch Linux. It replaces standard Display Managers with a minimal, systemd-integrated architecture to enable direct-to-GPU session handovers. The core logic is written in PEP8-compliant Python.
- SSOT Architecture: System lifecycle and identity are governed by a central configuration:
/etc/default/steamos_diy.conf. - Session Launcher: Manages transitions between Gamescope and KDE Plasma using atomic state updates and kernel-level process monitoring.
- Compatibility Shims: Redirects SteamOS-specific system calls (e.g., updates, BIOS) to DIY logic, ensuring UI stability.
- Dynamic Parameter Mapping: Maps YAML configuration flags directly to Gamescope command-line arguments without modifying source code.
- Game Wrapper (
sdy): Intercepts game launches to apply per-game YAML profiles, environment variables, and wrappers (MangoHud, GameMode). - Zero-DM Boot: Eliminates SDDM/GDM overhead by running the session manager as a high-priority systemd service on TTY1.
- Control Center: PyQt6 dashboard for system management, log analysis, and profile editing.
- Standard Hierarchy: Logic resides in
/usr/local/lib/steamos_diy/, preserving host system integrity. - User-Agnostic: Dynamically detects UIDs and environment paths.
- Full Reversibility: Includes an automated uninstaller to restore the original system state.
- AMD: RADV (Mesa).
- Intel: ANV (Mesa).
- NVIDIA: NVK (Vulkan-Nouveau). Note: Proprietary drivers are not supported.
- Requirements: KDE Plasma 6.x (Wayland) for Desktop Mode.
The install.sh script automatically enables the [multilib] repository and installs:
| Category | Packages |
|---|---|
| Execution | steam, gamescope, mangohud, gamemode, xorg-xwayland |
| Python Stack | python, python-pyqt6, python-yaml, python-ruamel-yaml |
| System Tools | vulkan-icd-loader, vulkan-tools, mesa-utils, pciutils, procps-ng |
| Drivers (Auto) | vulkan-radeon, vulkan-intel, vulkan-nouveau, nvidia-utils (+ 32-bit counterparts) |
Important
The installer applies setcap privileges to the Gamescope binary to ensure optimal performance and HDR support without requiring full root execution.
See the Project Wiki for technical implementation details and guides.
Special thanks to the Linux gaming community:
- shahnawazshahin: For the primary inspiration.
- HikariKnight: For the ScopeBuddy tool inspiration.
- berturion: For technical insights on desktop switching.
git clone [https://github.com/dlucca1986/SteamMachine-DIY.git](https://github.com/dlucca1986/SteamMachine-DIY.git)
cd SteamMachine-DIY*
chmod +x install.sh
sudo ./install.sh chmod +x uninstall.sh
sudo ./uninstall.sh