-
Notifications
You must be signed in to change notification settings - Fork 0
Project Overview
This page outlines the modular framework for configuring Arch Linux as a dedicated gaming system.
-
Distribution: Arch Linux or Arch-based distributions (e.g., EndeavourOS) using
systemd. -
Graphics Stack: Open-source drivers recommended (Mesa). Proprietary NVIDIA also supported.
- AMD: RADV — Recommended
- Intel: ANV
- NVIDIA (NVK/Nouveau): Mesa open-source Vulkan ICD
-
NVIDIA (Proprietary):
nvidia-utilsdeployed automatically if thenvidiamodule is detected -
Display Manager: None. The system manages session handovers via a
systemdservice on TTY1. - Desktop Environment: KDE Plasma 6.x (Wayland).
Important
NVK is currently in active development; users may experience varying compatibility compared to proprietary drivers.
Replaces traditional Display Managers (SDDM/plasmalogin) to eliminate session conflicts and reduce overhead.
-
Direct DRM Access: The session manager runs as a high-priority service, granting
Gamescope"DRM Master" status to minimize latency. -
Visual Transitions: The integrated
notifyengine manages visual feedback during session swaps, suppressing raw TTY output.
Session state is persisted to /var/lib/steamos_diy/next_session via atomic writes, ensuring the file is never partially written after a power loss.
-
Crash Recovery: The launcher monitors sessions via
proc.wait(). If a session exits beforeVALIDATION_TIMEOUT(default: 5s), the system boots to Desktop to prevent a soft-lock loop.
Acts as a bridge between user configuration and the compositor:
-
Argument Translation: The engine parses
config.yamland maps variables into command-line arguments for Gamescope (e.g., FSR, HDR, Sharpness). - Configuration-driven Tuning: Allows modification of rendering behavior and display output through text files without altering the Python source code.
Utility for automated game execution and environment setup:
-
Profile Lookup: Searches the directory tree for specific
.yamlconfigurations based onSteamAppIdor directory names. - Environment Injection: Applies per-game environment variables and wrappers (e.g., GameMode).
Configuration is split into system-level (/etc/default/steamos_diy.conf) and user-level (~/.config/steamos_diy/config.yaml), with optional per-game overrides in games.d/. See Architecture for the full filesystem hierarchy.
- 🚀 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.
- Ludusavi: Back up PC game save data.
- Protontricks: Run Winetricks commands for Steam Play/Proton games.
If you love this project, feel free to join and help me make it better!