-
Notifications
You must be signed in to change notification settings - Fork 0
Project Overview
SteamMachine-DIY is a high-performance system overlay for Arch Linux based on the SSOT (Single Source of Truth) architecture. It is designed to replicate the SteamOS console experience while keeping the host system clean, hardware-agnostic, and lean.
- Distribution: Arch Linux (or any Arch-based rolling release).
-
Graphics Stack: 100% Open Source Drivers (Mesa).
- AMD: RADV (Mesa)
- Intel: ANV (Mesa)
-
NVIDIA: NVK (via
vulkan-nouveau/ Mesa)
- Display Manager: NONE. The system handles the GPU handover directly via a dedicated Systemd Service on TTY1.
- Desktop Environment: KDE Plasma 6.x (Wayland).
We eliminate the overhead and potential conflicts of SDDM or GDM.
- Direct DRM Access: The system launches the session manager as a high-priority service. Gamescope gains exclusive "DRM Master" access, significantly reducing input lag and stutter.
-
Visual Handover: The
notifyengine provides clean visual feedback on the TTY during transitions, hiding raw console output for a seamless experience.
Filesystem integrity is a core principle. Transitions between Gaming Mode and Desktop are handled using Atomic Write Operations:
-
Corruption Proof: The state file is updated using a temporary buffer and an atomic replace (
os.replace), ensuring the system never reads a corrupted or partial session state after an unexpected power-off. - Emergency Recovery: The launcher features active monitoring. If a session fails to stabilize, it automatically triggers a rollback to the Desktop environment.
The launcher acts as a dynamic bridge between your preferences and the GPU.
-
YAML Manifesto: All Gamescope flags and variables are defined in
config.yaml. - Automatic Translation: The engine parses these entries and maps them into optimized command-line arguments on the fly, allowing for deep tuning without modifying core scripts.
The sdy wrapper is the universal entry point for all games:
-
Recursive Profile Search: It climbs up the directory tree to find specific
.yamlconfiguration files. -
Smart Identity: Uses
SteamAppIdor folder names to apply per-game tweaks, environment variables, or custom wrappers (like MangoHud or GameMode).
The system architecture relies on a clear separation between system logic and user preferences:
-
System Master (
/etc/default/steamos_diy.conf): Defines the system identity, user context, and binary paths. -
User Manifesto (
~/.config/steamos_diy/config.yaml): Where you define Gamescope parameters and global environment variables.
-
Core Scripts:
/usr/local/lib/steamos_diy/ -
Main Config:
~/.config/steamos_diy/config.yaml -
Game Profiles:
~/.config/steamos_diy/games.d/ -
State Management:
/var/lib/steamos_diy/next_session
- 🚀 Gamescope: Valve's micro-compositor for Wayland.
- 🎮 Steam: Running in
-gamepaduimode. - 📊 MangoHud: Vulkan/OpenGL performance overlay.
- ⚡ GameMode: Feral Interactive’s system optimizer.
- 🖥️ PyQt6: Powers the Control Center dashboard.
- Goverlay: Graphical interface for MangoHud and vkBasalt.
- LACT: Control your AMD, Nvidia, or Intel GPU.
- Bottles: Run Windows software and games.
- ProtonUp-Qt: Manage Proton-GE and Wine-GE versions.
- Lutris: Central interface for all your game libraries.
We believe in total reversibility. The provided uninstall.sh will:
- Remove all compatibility shims and symbolic links from
/usr/bin/. - Clean up TTY1 autologin overrides.
- Completely remove the SSOTH master configuration and all scripts. Your Arch Linux will return to its original state, guaranteed.
⬅️ Back to Home
If you love this project, feel free to join and help me make it better!