Transform your Arch Linux machine into a dedicated gaming console using systemd, supporting AMD, Intel, and NVIDIA hardware.
Important
This framework is designed for KDE Plasma 6.x (Wayland).
Before proceeding, please review the documentation to ensure your system meets all hardware and software requirements.
Read the Project Wiki before installation.
- 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 process monitoring via
proc.wait(). - 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/plasmalogin 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:
- Open Source Drivers (NVK/Nouveau): Supported via Mesa. The installer detects the active driver and deploys
mesa+lib32-mesa. - Proprietary Drivers: Supported. When the
nvidiakernel module is detected, the installer deploysnvidia-utils+lib32-nvidia-utils.
- Open Source Drivers (NVK/Nouveau): Supported via Mesa. The installer detects the active driver and deploys
Important
NVIDIA Proprietary Drivers & Gamescope:
To use Gamescope with proprietary drivers, you must enable DRM Kernel Mode Setting (KMS).
Recommendation: Follow the official Arch Wiki: NVIDIA DRM kernel mode setting to apply the nvidia-drm.modeset=1 parameter to your specific bootloader.
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, gcc |
| Drivers (Auto) | vulkan-radeon, vulkan-intel (+ Mesa layers); NVIDIA: nvidia-utils or mesa depending on active driver (+ 32-bit counterparts) |
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
cd SteamMachine-DIY*
chmod +x install.sh
sudo ./install.sh chmod +x uninstall.sh
sudo ./uninstall.sh