-
Notifications
You must be signed in to change notification settings - Fork 0
Project Overview
SteamMachine-DIY is a system overlay for Arch Linux based on the SSOTH (Single Source of Truth) architecture. The goal is to replicate the SteamOS console experience while keeping the system clean, hardware-agnostic, and high-performing.
- Distribution: Arch Linux / EndeavourOS (or any Arch-based distro).
-
Graphics Stack: 100% Open Source Drivers (Mesa).
- AMD: RADV (Mesa)
- Intel: ANV (Mesa)
-
NVIDIA: NVK (via
vulkan-nouveau/ Mesa)
- Display Manager: NONE (Zero-DM). The system handles the GPU handover directly via TTY1 Autologin.
- Desktop Environment: KDE Plasma 6.x (Wayland).
We eliminate the overhead of SDDM or GDM. The system logs in automatically on TTY1 and starts the session loop.
- Direct GPU Access: Gamescope gains exclusive "DRM Master" access, significantly reducing input lag.
-
Visual Banners: The
ssoth_bannerfunction provides professional visual feedback during session switches, hiding raw terminal output.
Filesystem safety is a top priority. Transitions between Gaming Mode and Desktop are handled atomically:
-
Corruption Proof: The
next_sessionfile is updated using a temporary file and a move operation (mv), preventing corruption during unexpected power-offs. - Smart Loop: The launcher constantly monitors the session state, handling Steam crashes by either restarting the session or returning to the desktop safely.
The launcher is "intelligent," removing the need for manual script editing.
-
Automatic Mapping: Any variable starting with
GS_in the configuration file is automatically converted into a Gamescope argument (e.g.,GS_UPSCALER=fsrbecomes--upscaler fsr).
The universal sdy wrapper optimizes every game launched from Steam:
-
Recursive Discovery: It searches for specific configuration files (
.conf) by climbing up to 3 directory levels. -
Smart Identification: If a game uses a generic executable name (e.g.,
start.sh),sdyuses the parent folder name to apply the correct tweaks.
The system is built on two fundamental pillars:
-
System Master (
/etc/default/steamos-diy): Contains the system identity (CONSOLE_USER,USER_ID) and global paths. -
User Config (
~/.config/steamOs/config): Where the user defines Gamescope parameters and global environment variables.
-
Main Config:
~/.config/steamOs/config -
Game Overrides:
~/.config/steamOs/games/ -
Session Logs:
~/.config/steamOs/session.log -
Next Session Trigger:
~/.config/steamOs/next_session
- ๐ Gamescope: Valve's micro-compositor.
- ๐ฎ Steam: Running in
-gamepaduifor the full console feel. - ๐ MangoHud: Performance monitoring overlay.
- โก GameMode: Real-time system optimization daemon.
- ๐ฅ๏ธ PyQt6: Powers the graphical Control Center.
- 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!