Skip to content

dlucca1986/SteamMachine-DIY

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

560 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 SteamMachine-DIY

Transform any Arch Linux machine into a dedicated gaming console using systemd, supporting AMD, Intel, and NVIDIA hardware.

Version License: MIT Code Style: PEP8 Language: Python


🌟 Overview

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.

✨ Key Features

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

🛡️ Design Principles

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

🛠️ Hardware Support

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

📦 Core Dependencies

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.

📖 Documentation

See the Project Wiki for technical implementation details and guides.

🤝 Acknowledgments

Special thanks to the Linux gaming community:

🚀 Installation

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

🗑️ Uninstallation

   chmod +x uninstall.sh
   sudo ./uninstall.sh

Releases

No releases published

Packages

 
 
 

Contributors