CachyOS Gamescope Boot Wizard
A setup script that makes a CachyOS desktop install (running KDE Plasma +
plasma-login-manager) always boot into a Steam Deck-style gamescope
session - the same "always boots into Big Picture, switch to desktop and
back on demand" experience SteamOS gives you on a real Deck or the Valve
Steam Machine.
It exists because, as of the CachyOS March 2026 release (which switched the
default login manager from SDDM to plasma-login-manager), the stock
gamescope-session-cachyos tooling has a few gaps that stop this from
working out of the box. This script patches around them.
What's actually broken (and what this fixes)
CachyOS's gamescope-session-cachyos package ships steamos-session-select,
which is meant to work exactly like it does on real SteamOS. On a
plasma-login-manager system, three things get in the way:
-
No
User=written to the autologin config.steam-set-session(the scriptsteamos-session-selectcalls under the hood) only ever writes aSession=key to the autologin config file. On SDDM this is fine, because SDDM'sUser=is set once by the installer and never touched again.plasma-login-managerneeds bothSession=andUser=present to autologin at all - withoutUser=, it just falls back to showing the greeter every boot. -
Missing
/etc/plasmalogin.conf.ddirectory. If that directory doesn't exist,steam-set-sessionfails outright when it tries to write to it. In practice this shows up as Steam's "Switch to Desktop" hanging forever on a "Switching to Desktop" message with no way back except a hard reset. -
The base
/etc/plasmalogin.confwins over conf.d, and CachyOS ships it hardcoded toSession=plasma. Every CachyOS tool that changes sessions (steamos-session-select, Steam's power menu, and thecachyos-gamescope-autologin.servicethat's supposed to reset you back to gamescope after a desktop session) only ever writes to/etc/plasmalogin.conf.d/zz-steamos-autologin.conf. But the base/etc/plasmalogin.conffile takes priority over that fragment, and it ships withSession=plasmabaked in - so none of those session switches ever actually stick, no matter what the fragment says.
This script fixes all three: it ensures the conf.d directory exists, sets the
base config's Session=, User=, and Relogin=true correctly, and installs
a small systemd path-watcher that keeps the base config in sync with
whatever CachyOS's own tools write to the conf.d fragment - so switching
sessions from inside Steam or the desktop actually works, in both
directions, and resets to gamescope on the next boot by default (matching
real Deck/SteamOS behavior).
It also optionally offers to install Valve's official Vapor KDE Plasma theme - the same colors, icons, wallpapers, and Plasma look-and-feel package used on real SteamOS - pulled directly from Valve's own SteamOS package mirror, so your desktop session matches the gamescope side visually.
Requirements
- CachyOS (or an Arch-based system) with
pacman - KDE Plasma installed
plasma-login-manageras the active display manager (the script will warn and ask for confirmation if it detects SDDM or something else instead - most of these workarounds are specific toplasma-login-manager)- A regular user account with
sudoaccess
Usage
git clone <this-repo-url>
cd <this-repo>
chmod +x setup-gamescope-boot.sh
./setup-gamescope-boot.sh
Run it as your normal user, not as root - it calls sudo internally for
the specific commands that need it.
The script will:
-
Ask which user account should autologin into gamescope (defaults to whoever's running the script).
-
Check for and offer to install
gamescope-session-cachyos,steam, andmangohudif any are missing. -
Create
/etc/plasmalogin.conf.dif it doesn't exist. -
Back up and rewrite
/etc/plasmalogin.conf's[Autologin]section. -
Remove any stray manual override files from earlier troubleshooting attempts (only files matching
zzz-steamos-autologin*.conf- it never toucheszz-steamos-autologin.conf, which CachyOS's own tools own). -
Install a sync script (
/usr/local/bin/sync-steamos-session.sh) and asystemdpath unit that keeps the base config aligned with session switches made through Steam orsteamos-session-select. -
Ask whether you'd also like to install Valve's Vapor (Steam Deck) KDE theme. If you say yes, it downloads the official
steamdeck-kde-presetspackage straight from Valve's SteamOS mirror and installs the color scheme, Plasma look-and-feel package, wallpapers, and icons into your user's~/.local/share. This step only touches your home directory - nothing system-wide - and installingcurl/zstdfirst if either is missing. Apply it afterwards from System Settings > Appearance > Global Theme > Vapor (Steam Deck) the next time you're in a Plasma session.If you keep a folder named
icons/next to the script (e.g. custom Steam Deck logo assets), it'll also copy those into the right Plasma icon directories automatically. This is entirely optional - the theme installs fine without it. -
Ask whether to reboot immediately to test the gamescope setup.
It's safe to re-run - every step checks current state first, and any
file it modifies gets backed up once with a .bak-gamescope-wizard suffix
before the first change.
After running it
Boot straight into gamescope: it should happen automatically. From inside
gamescope, Steam's Power > Switch to Desktop should now work. From the
desktop, logging out should drop you back into gamescope automatically
(thanks to CachyOS's own cachyos-gamescope-autologin.service, which this
script doesn't replace - it just makes sure the setting it writes actually
takes effect).
You can also switch sessions manually at any time:
steamos-session-select gamescope # switch to gamescope right now
steamos-session-select plasma # switch to desktop right now
steamos-session-select persistent # remember whichever session you used last, across reboots
steamos-session-select oneshot # always start in gamescope regardless of what you used last (the default Deck-like behavior)
Restoring the originals
Every file the script modifies is backed up next to itself:
sudo cp /etc/plasmalogin.conf.bak-gamescope-wizard /etc/plasmalogin.conf
To fully remove the sync watcher this script adds:
sudo systemctl disable --now sync-steamos-session.path
sudo rm /etc/systemd/system/sync-steamos-session.path
sudo rm /etc/systemd/system/sync-steamos-session.service
sudo rm /usr/local/bin/sync-steamos-session.sh
sudo systemctl daemon-reload
Caveats
- This works around current CachyOS/
plasma-login-managerbehavior as of September 2026. If CachyOS fixessteam-set-sessionupstream to writeUser=and to target whichever base config the login manager actually reads, this script becomes unnecessary - check for updates before running it on a freshly reinstalled system. - Tested on a Valve Steam Machine (desktop AMD APU + discrete GPU) running
CachyOS Desktop edition. Should apply to any CachyOS desktop install using
plasma-login-manager, but hasn't been tested on Steam Deck/Legion Go hardware, which typically ship with SDDM instead. - If you find CachyOS has patched the underlying issue, please open an issue or PR here so the script can detect that and skip the workaround.
- The Vapor theme step depends on Valve's
steamdeck-kde-presetspackage staying available at its current URL and version (steamdeck-kde-presets-0.29-1-any.pkg.tar.zstonsteamdeck-packages.steamos.cloud). If Valve ships a newer version or changes the mirror layout, updatepkg_vernear the top ofinstall_vapor_theme()in the script.
Related upstream reports
- CachyOS/gamescope-session#9 - "Switch to Desktop" hang due to missing
/etc/plasmalogin.conf.d
License
MIT - do whatever you want with it.