Skip to content

dlucca1986/SteamMachine-DIY

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 SteamMachine-DIY

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.

📖 Documentation

Read the Project Wiki before installation.

Version License: MIT Code Style: PEP8 Language: 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 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.

🛡️ 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:
    • Open Source Drivers (NVK/Nouveau): Supported via Mesa. The installer detects the active driver and deploys mesa + lib32-mesa.
    • Proprietary Drivers: Supported. When the nvidia kernel module is detected, the installer deploys nvidia-utils + lib32-nvidia-utils.

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.

📦 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, gcc
Drivers (Auto) vulkan-radeon, vulkan-intel (+ Mesa layers); NVIDIA: nvidia-utils or mesa depending on active driver (+ 32-bit counterparts)

🤝 Acknowledgments

Special thanks to the Linux gaming community:

🚀 Installation

git clone 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