Full Documentation Wiki โ detailed guides on utility, setup, execution and troubleshooting.
- Supported Operating Systems
- What's New
- Quick Start
- Key Features
- Installed Components
- Hardware Support
- Usage Examples
- Command-Line Options
- Rollback System
- Full Uninstall
- Post-Installation
- File Locations
- Documentation
- Troubleshooting
- Contributing
- Project Stats
- License
- Support
Requirements: Python 3.12+ ยท root/sudo ยท internet ยท 5+ GB disk ยท x86_64
- ๐ All GitHub Actions upgraded to v6 โ Node 24 compatible, eliminates deprecation warnings
- ๐งช 8 lint checks โ Added f-string logging detection, test count regression guard, subprocess timeout verification
- ๐ Full release workflow โ Automated GitHub Releases with 3 archive formats and auto-generated notes
- ๐ Pipeline summary โ GITHUB_STEP_SUMMARY tables for every run
- ๐ 15 wiki pages (3,920 lines) โ Launcher Guide, Setup Guide, expanded Architecture, Troubleshooting, and more
- ๐ง
make version-bumpโ Single command syncs version across all files (11 patterns)
- ๐ 3 runtime bugs fixed โ Mixed logging format TypeError, AMD GPU false detection, GE-Proton dry-run checksum
- ๐งช 136 tests โ 100% critical method coverage (was 19%)
- ๐ 20 f-string logging calls eliminated โ All converted to lazy %-formatting
- ๐๏ธ GitHub infrastructure โ FUNDING.yml, issue templates, PR template, .gitignore, LICENSE
- ๐ง Makefile โ 43+ targets across 9 categories
# Download
wget https://raw.githubusercontent.com/Sandler73/Debian-Gaming-Setup-Project/main/debian_gaming_setup.py
# Interactive installation
sudo python3 debian_gaming_setup.py
# Or use a preset for automated installation
sudo python3 debian_gaming_setup.py --preset standard -y| Preset | What's Included |
|---|---|
--preset minimal |
GPU drivers + Steam + essentials + 32-bit |
--preset standard |
Minimal + Lutris + Wine + GameMode + MangoHud + GE-Proton + codecs |
--preset complete |
Standard + Heroic + ProtonUp-Qt + Goverlay + vkBasalt + Waydroid + SOBER + Discord + Mumble + mods + optimizations |
--preset streaming |
Steam + MangoHud + GameMode + Discord + optimizations |
sudo python3 debian_gaming_setup.py --check-requirements # Validate system
sudo python3 debian_gaming_setup.py --preset standard --dry-run # Preview changes| Category | Feature | Details |
|---|---|---|
| ๐ฎ Platforms | 8 gaming platforms | Steam, Lutris, Heroic, ProtonUp-Qt, SOBER, Waydroid, Discord, OBS |
| ๐ฅ๏ธ GPU | All vendors | NVIDIA, AMD, Intel โ fully dynamic detection and driver selection |
| ๐ฑ๏ธ VM | 6 hypervisors | VMware, VirtualBox, KVM, Hyper-V, Xen, Parallels |
| โก Performance | 5 tools | GameMode, MangoHud, Goverlay, vkBasalt, GreenWithEnvy |
| ๐ Rollback | 7 action types | APT, Flatpak, repos, files, sysctl, GE-Proton โ LIFO reversal |
| ๐๏ธ Uninstall | Full removal | Categorized inventory, reverse-dependency order, confirmation gates |
| ๐ CLI | 43 arguments | 9 groups, 4 presets, dry-run, auto-yes |
| ๐ Security | Audited | STRIDE model, CWE/SANS Top 25, no shell=True, no eval |
| ๐งช Testing | 136 tests | Unit, integration, security, host safety |
| ๐ง CI/CD | 4 jobs | Lint, test (3.12+3.13), security scan, release |
| Component | Package | Install Method | Pre-Detection |
|---|---|---|---|
| Steam | steam / steam-installer |
APT | โ version + update |
| Lutris | lutris / net.lutris.Lutris |
APT / Flatpak | โ version + update |
| Heroic Games Launcher | com.heroicgameslauncher.hgl |
Flatpak | โ version + update |
| ProtonUp-Qt | net.davidotek.pupgui2 |
Flatpak | โ version + update |
| SOBER (Roblox) | org.vinegarhq.Sober |
Flatpak | โ version + update |
| Waydroid (Android) | waydroid |
APT | โ version + update |
| Component | Package | Verification |
|---|---|---|
| Wine Staging | winehq-staging |
WineHQ repo codename validation |
| Winetricks | winetricks |
APT version check |
| GE-Proton | GitHub release | SHA512 checksum verification |
| Component | Package | Purpose |
|---|---|---|
| GameMode | gamemode |
CPU/GPU optimization during gameplay |
| MangoHud | mangohud + :i386 |
FPS/performance HUD overlay |
| Goverlay | goverlay |
MangoHud GUI configurator |
| vkBasalt | vkbasalt |
Vulkan post-processing (sharpening, CAS) |
| GreenWithEnvy | com.leinardi.gwe |
NVIDIA GPU fan curve and clock control |
| Performance Launcher | ~/launch-game.sh |
GameMode + MangoHud + CPU governor wrapper |
| Component | Package | Install Method |
|---|---|---|
| Discord | discord / com.discordapp.Discord |
APT / Flatpak |
| OBS Studio | obs-studio / com.obsproject.Studio |
APT / Flatpak |
| Mumble | mumble |
APT |
| r2modman | com.thunderstore.r2modman |
Flatpak |
| Controller support | xboxdrv, antimicrox |
APT |
| GPU Vendor | Detection | Driver Source | Features |
|---|---|---|---|
| NVIDIA | lspci + ubuntu-drivers |
Dynamic version selection | Proprietary drivers, CUDA, Vulkan |
| AMD | lspci |
Mesa + AMDGPU | Vulkan, 32-bit compatibility, firmware-aware |
| Intel | lspci |
Mesa + i915 | Media acceleration, Arc GPU support |
| VM Platform | Guest Tools | Auto-Detected |
|---|---|---|
| VMware | open-vm-tools + desktop |
โ |
| VirtualBox | virtualbox-guest-utils |
โ |
| KVM/QEMU | qemu-guest-agent + spice-vdagent |
โ |
| Hyper-V | hyperv-daemons |
โ |
| Xen | xe-guest-utilities |
โ |
| Parallels | parallels-tools |
โ |
# NVIDIA Gaming PC (Maximum Features)
sudo python3 debian_gaming_setup.py -y \
--nvidia --all-platforms --sober --wine --ge-proton \
--gamemode --mangohud --gwe --vkbasalt \
--discord --obs --mod-managers --controllers \
--essential --codecs --optimize --launcher
# AMD Gaming PC
sudo python3 debian_gaming_setup.py -y \
--amd --all-platforms --wine --ge-proton \
--gamemode --mangohud --vkbasalt \
--discord --controllers --essential --codecs --optimize
# Intel Laptop (Battery-Conscious)
sudo python3 debian_gaming_setup.py -y \
--intel --steam --lutris --wine \
--gamemode --essential --codecssudo python3 debian_gaming_setup.py --update # Update installed components
sudo python3 debian_gaming_setup.py --rollback # Undo last installation session
sudo python3 debian_gaming_setup.py --uninstall # Full removal of all components
sudo python3 debian_gaming_setup.py --self-update # Check for script updates
sudo python3 debian_gaming_setup.py --check-requirements # Validate systemGeneral: --dry-run, --yes/-y, --verbose, --skip-update
GPU/Drivers: --nvidia, --amd, --intel, --vm-tools
Platforms: --steam, --lutris, --heroic, --protonup, --sober, --waydroid, --all-platforms
Compatibility: --wine, --ge-proton
Performance: --gamemode, --mangohud, --goverlay, --gwe, --vkbasalt, --optimize, --launcher
Communication: --discord, --obs, --mumble
System: --essential, --codecs, --32bit, --mod-managers, --controllers
Maintenance: --rollback, --uninstall, --update, --self-update, --check-requirements, --cleanup
Presets: --preset minimal|standard|complete|streaming
Every reversible operation is automatically tracked. The rollback engine records 7 action types:
| Action Type | What's Tracked | Reversal |
|---|---|---|
apt_install |
APT package installs | apt-get remove |
flatpak_install |
Flatpak app installs | flatpak uninstall |
repo_add |
Repository additions | Remove repo files + update |
file_create |
Files created by script | Remove file |
file_modify |
Files modified (backed up) | Restore from backup |
sysctl_write |
sysctl config changes | Remove + reload |
ge_proton_install |
GE-Proton extraction | Remove directory |
sudo python3 debian_gaming_setup.py --rollback --dry-run # Preview
sudo python3 debian_gaming_setup.py --rollback # ExecuteFor complete removal of all gaming components installed by the script:
sudo python3 debian_gaming_setup.py --uninstallThe uninstall mode:
- Scans for all installed gaming components (APT packages, Flatpak apps, GE-Proton, config files)
- Displays a categorized inventory with versions
- Confirms before proceeding
- Removes in reverse dependency order (Flatpak โ APT โ autoremove โ GE-Proton โ configs โ state)
- Reports results with error details
This differs from --rollback which only undoes the last session. --uninstall finds all known components regardless of when they were installed.
- Reboot โ
sudo reboot(required for GPU drivers) - Verify GPU โ
nvidia-smiorglxinfo | grep renderer - Configure Steam โ Settings โ Compatibility โ Enable Steam Play โ Proton Experimental
- Test a game โ Native: CS2, Portal 2 | Proton: Stardew Valley, Terraria
- Performance launcher โ
~/launch-game.sh steam
| File | Path | Purpose |
|---|---|---|
| Logs | ~/gaming_setup_logs/gaming_setup_*.log |
Timestamped operation logs |
| State | ~/gaming_setup_logs/installation_state.json |
Installed component inventory |
| Rollback | ~/gaming_setup_logs/rollback_manifest.json |
Action history for rollback |
| Backups | ~/gaming_setup_backups/ |
Pre-modification file backups |
| Launcher | ~/launch-game.sh |
Performance game launcher |
| MangoHud | ~/.config/MangoHud/MangoHud.conf |
HUD overlay settings |
| vkBasalt | ~/.config/vkBasalt/vkBasalt.conf |
Post-processing config |
| Document | Purpose | Best For |
|---|---|---|
| Wiki | Complete documentation hub (13 pages) | Everyone |
| Quick_Start.md | Step-by-step first-run guide | First-time users |
| Usage_Guide.md | Complete reference with all options | All users |
| FAQ.md | 50+ questions across 12 categories | Quick answers |
| CHANGELOG.md | Version history from v1.0 to v3.4.2 | Tracking changes |
| SECURITY.md | Security model and vulnerability reporting | Security researchers |
| CONTRIBUTING.md | Contribution guide and code standards | Contributors |
| LAUNCHER_GUIDE.md | Performance launcher documentation | Power users |
"Package has no installation candidate" โ Run sudo apt-get update. On ZorinOS/derivatives, the script (v3.3.0+) automatically skips unavailable packages.
System upgrade hangs โ Fixed in v3.2.0 with dpkg --force-confold. update to v3.5.0 or re-run with --skip-update.
NVIDIA driver not loading โ Disable Secure Boot in BIOS. Run sudo apt purge nvidia-* && sudo python3 debian_gaming_setup.py --nvidia.
Steam won't launch โ Run steam from terminal to see errors. Try rm -rf ~/.steam/steam/appcache/.
MangoHud not showing โ Use MANGOHUD=1 %command% in Steam Launch Options. Config: ~/.config/MangoHud/MangoHud.conf.
Check logs โ cat ~/gaming_setup_logs/gaming_setup_*.log | tail -100
Full troubleshooting guide | FAQ
Contributions welcome! See CONTRIBUTING.md for guidelines.
# Development setup
git clone https://github.com/Sandler73/Debian-Gaming-Setup-Project.git
cd Debian-Gaming-Setup-Project
make install-dev # Install pytest, pre-commit
make check # Run all quality gates (lint + test + security)| Metric | Value |
|---|---|
| Script version | v3.5.0 |
| Lines of code | 5,796 |
| Python version | 3.12+ (StrEnum, slots, walrus, PEP 585/604) |
| CLI arguments | 43 across 9 groups |
| GamingSetup methods | 92+ |
| Automated tests | 136 (42 unit, 24 integration, 46 extended integration, 24 security/host safety) |
| CI/CD pipeline | 4 jobs (lint, test matrix, security scan, release) |
| Gaming platforms | 8 |
| Performance tools | 5 |
| Supported distributions | 10+ (tested) |
| Wiki pages | 13 |
| Configuration presets | 4 (minimal, standard, complete, streaming) |
| Rollback action types | 7 |
| External dependencies | 0 โ Python standard library only |
| Security audit | STRIDE + CWE/SANS Top 25 mapped |
MIT License โ Free to use, modify, and distribute. See LICENSE for liability limitation and warranty disclaimer.
This script makes system-level changes. Always backup important data, test with --dry-run first, review logs for errors, and understand what's being installed. Use at your own risk. No warranty provided.
| Resource | Link |
|---|---|
| ๐ Wiki & Guides | github.com/Sandler73/Debian-Gaming-Setup-Project/wiki |
| โ FAQ | 50+ Questions Answered |
| ๐ Report a Bug | Open Bug Report |
| โจ Request Feature | Open Feature Request |
| ๐ Security Issue | Private Security Advisory |
| ๐ฌ Discussions | GitHub Discussions |
| ๐ Sponsor | GitHub Sponsors |
| ๐ง Contact | Open an Issue |
- Check the FAQ โ 50+ questions across 12 categories
- Read the Troubleshooting Guide โ Common issues and solutions
- Search existing issues โ Your question may already be answered
- Open a new issue โ Use the structured issue templates for fastest response
- Include your logs โ
cat ~/gaming_setup_logs/gaming_setup_*.log | tail -50
If this script helped you, consider:
- โญ Starring the repository
- ๐ Reporting bugs you encounter
- ๐ Contributing code, docs, or translations
- ๐ Sponsoring via GitHub Sponsors
- ๐ข Sharing with fellow Linux gamers
โญ Star this repo if it helped you! โญ
Made with โค๏ธ for the Linux gaming community
Version 3.5.0 | Updated March 2026
Report Issue ยท Request Feature ยท Contribute ยท Wiki
