Users hit by the v12.27-KDE Proton-GE bug end up with ~/.steam/steam as a
real directory, which permanently blocks desktop Steam launch. Telling
every affected user to delete ~/.steam manually is poor UX — make
re-running the installer fix it.
Adds repair_broken_steam_data_dir(), called at the top of
install_proton_ge_from_github(). It:
1. No-ops if ~/.steam/steam is a symlink (already fine) or absent (fresh).
2. If it's a real directory, scans for Steam-launched markers (steamapps,
config, userdata, package, steamui, ubuntu12_*, registry.vdf, etc.). If
any are present we treat it as real user data and refuse to touch it.
3. Otherwise: salvages any GE-Proton* installs into
~/.local/share/Steam/compatibilitytools.d/, removes ~/.steam, prompts
first. On next desktop Steam launch the symlink is recreated correctly.
Gated behind a Y/n confirmation so even false positives are recoverable.
install_proton_ge_from_github() was creating ~/.steam/steam/compatibilitytools.d
via mkdir -p before Steam had ever been launched. That forces ~/.steam/steam
to exist as a real directory — which then prevents Steam, on first launch,
from creating it as a symlink to ~/.local/share/Steam. Result: desktop Steam
fails with "can't configure Steam data" / "Steam needs to be online to update".
Switch the install target to ~/.local/share/Steam/compatibilitytools.d/ (the
real Steam data dir). When Steam first runs it sets up ~/.steam/steam as a
symlink → ~/.local/share/Steam, so Proton-GE is picked up automatically.
Also check the legacy ~/.steam/steam/compatibilitytools.d path in the
idempotency probe so re-runs on previously-installed boxes don't redownload.
Bump version 12.27-KDE → 13.0-KDE (covers this fix plus the 2026-05-16
plasma-login-manager / AUR-reliability update which never bumped the string).
- Auto-detect SDDM vs plasma-login-manager and parameterise all
session-switch scripts, sudoers entries, and config paths.
- Install Proton-GE direct from GitHub instead of via the unreliable
proton-ge-custom-bin AUR package; idempotent and SHA-verified.
- AUR reachability check + 3x retry/backoff for the gamescope-session
install and optional-deps phase.
- Pre-emptively remove gamescope-session-cachyos / jupiter-hw-support
before the AUR build and add gamescope-session-cachyos to IgnorePkg
so pacman -Syu won't swap the build back. Fixes autologin black-screen.
- Rename SDDM drop-in zz-gaming-session.conf -> zzz-gaming-session.conf
to outrank CachyOS's own zz-steamos-autologin.conf.
- Read /etc/default/limine + run limine-update on CachyOS where
/boot/limine.conf gets regenerated on every mkinitcpio run.
- Post-install verification hard-fails if gamescope-session-plus is
missing, with a clear remediation message.
- Drop CFS sysctl sudoers entries (kernel knobs removed in 6.6 EEVDF).
- README: 'What's new' section, DM-agnostic wording, Proton-GE +
CachyOS black-screen troubleshooting entries.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>