Skip to content

Project Overview

dlucca1986 edited this page Feb 12, 2026 · 41 revisions

๐Ÿ“– Project Overview

Version License: MIT Drivers

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.


๐Ÿ“ System Requirements

  • 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).

๐Ÿš€ SSOTH Architecture Features

1. Zero-DM & TTY1 Handover

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_banner function provides professional visual feedback during session switches, hiding raw terminal output.

2. Atomic Session Switching

Filesystem safety is a top priority. Transitions between Gaming Mode and Desktop are handled atomically:

  • Corruption Proof: The next_session file 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.

3. Dynamic Gamescope Mapping

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=fsr becomes --upscaler fsr).

4. The sdy Discovery Engine

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), sdy uses the parent folder name to apply the correct tweaks.

โš™๏ธ Centralized Configuration

The system is built on two fundamental pillars:

  1. System Master (/etc/default/steamos-diy): Contains the system identity (CONSOLE_USER, USER_ID) and global paths.
  2. User Config (~/.config/steamOs/config): Where the user defines Gamescope parameters and global environment variables.

๐Ÿ“ Directory Structure

  • Main Config: ~/.config/steamOs/config
  • Game Overrides: ~/.config/steamOs/games/
  • Session Logs: ~/.config/steamOs/session.log
  • Next Session Trigger: ~/.config/steamOs/next_session

๐Ÿ“ฆ Essential Core Packages

  • ๐Ÿš€ Gamescope: Valve's micro-compositor.
  • ๐ŸŽฎ Steam: Running in -gamepadui for the full console feel.
  • ๐Ÿ“Š MangoHud: Performance monitoring overlay.
  • โšก GameMode: Real-time system optimization daemon.
  • ๐Ÿ–ฅ๏ธ PyQt6: Powers the graphical Control Center.

โž• Optional Packages

  • 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.

๐Ÿ—‘๏ธ Uninstallation

We believe in total reversibility. The provided uninstall.sh will:

  1. Remove all compatibility shims and symbolic links from /usr/bin/.
  2. Clean up TTY1 autologin overrides.
  3. Completely remove the SSOTH master configuration and all scripts. Your Arch Linux will return to its original state, guaranteed.

โฌ…๏ธ Back to Home

๐Ÿ—๏ธ Core & Setup

๐ŸŽฎ Gaming

๐Ÿ› ๏ธ Tools & Support


๐Ÿ”— Resources


๐Ÿค Join the Project

If you love this project, feel free to join and help me make it better!

Clone this wiki locally