ProtonShift — The Linux Game Configuration Toolkit

One library for Steam, Heroic, and Lutris. One editor for Gamescope, MangoHud, and ScopeBuddy. No terminal gymnastics. No JSON spelunking.
$ chmod +x ProtonShift-*.AppImage && ./ProtonShift-*.AppImage
Open source, tested for real
Built for the Proton era
Your stack, one UI
Every tool in your gaming stack
ProtonShift doesn't replace the launchers and tools you already use — it gives each one a sensible interface and puts them all in one desktop app.
The config sprawl problem
Why ProtonShift?
Linux gaming finally works. The configuration around it still doesn't. ProtonShift gathers the sprawl into one desktop app — no terminal gymnastics, no JSON spelunking, no winetricks arcana.
| The task | The old way | ProtonShift |
|---|---|---|
Launch optionsThe same game, configured twice | Steam's matchbox dialog + Heroic JSON files | One real editor + presets |
MangoHud overlay | nano ~/.config/MangoHud/MangoHud.conf | Visual editor, 9 presets |
Gamescope flags | Pasted from a Reddit comment | Command builder + live preview |
ScopeBuddyPer-app gamescope overrides | Hand-edit scb.conf and scb.conf.d/ | KV editor + per-app overrides |
System-wide tuning | environment.d/*.conf in a text editor | Presets that explain themselves |
Winetricks verbs | protontricks from a terminal | GUI + one-click quick verbs |
Wine prefixes | A compatdata folder you're afraid to touch | Prefix inspector, one click |
Save files | Manual copies — if you can find them | Auto-detect + ZIP backups |
Known game issues | Hours of forum archaeology | Fixes database, one-click apply |
Reflects ProtonShift v0.9.7. Spotted a config file we missed? Open an issue.
What ships in ProtonShift
The Full Toolkit
From unified library discovery to a live gamepad tester — everything built so you never hand-edit a config file again. Click any feature to see how it works.
Quick Start
Three steps. No package manager, no PPA, no building from source.
# Download the latest release (AppImage shown) $ xdg-open https://github.com/I4cTime/protonshift/releases/latest
No man page required
Gamescope Command Builder
Build a complete Gamescope command with sliders and switches instead of flags pasted from a Reddit comment. Try it — the command below updates live.
# Launch options — one click to insert gamescope -W 2560 -H 1440 -w 1920 -h 1080 -r 144 -F fsr --fsr-sharpness 5 -f -- %command%
In the app, one click inserts this straight into the game's launch options (or copies it to the clipboard). If a ScopeBuddy override exists for the game, the builder picks it up and offers to round-trip your changes back. Gamescope missing? You get install hints for Ubuntu, Fedora, and Arch instead of a stack trace.
Flag reference
What the builder writes for you
17 flags covered by switches, sliders, and quick buttons. Pick a category to browse.
| Flag | What it does |
|---|---|
-W / -H | Output resolution — what your monitor receives (720p–4K quick buttons in the builder) |
-w / -h | Game resolution — what the game renders internally before upscaling |
-f | Start in fullscreen |
-b | Borderless window mode |
--force-grab-cursor | Keep the cursor confined to the game window |
Gamescope, layered per game
ScopeBuddy Integration
ScopeBuddy intercepts gamescope invocations and layers arguments per application. ProtonShift ships a first-class editor for it — global config, per-app overrides, and detection toasts. Flip the switches; the file updates.
Global config · scb.conf
SCB_GAMESCOPE_ARGS"-f --adaptive-sync"SCB_AUTO_RESMatch the display's native resolutionSCB_AUTO_HDREnable HDR when the display supports itSCB_AUTO_VRREnable variable refresh rateSCB_AUTO_FRAME_LIMITCap FPS at the display refresh rateSCB_DEBUGVerbose logging for troubleshooting
# ~/.config/scopebuddy/scb.confSCB_GAMESCOPE_ARGS="-f --adaptive-sync"SCB_AUTO_RES=1SCB_AUTO_HDR=1SCB_AUTO_VRR=1SCB_AUTO_FRAME_LIMIT=0SCB_DEBUG=0
Per-app overrides · scb.conf.d/
1086940.confBaldur's Gate 3-W 3840 -H 2160 --hdr-enabled1245620.confElden Ring-r 60 -F fsr --fsr-sharpness 3553850.confHelldivers 2-w 1920 -h 1080 -r 144
ScopeBuddy detected — overrides apply on next launch.
A real editor for scb.conf. Inspect the global config and its environment side-by-side. Every SCB_ variable — GAMESCOPE_ARGS, AUTO_RES, AUTO_HDR, AUTO_VRR, AUTO_REFRESH, NOSCOPE, NESTEDFIX, APPENDMODE — gets a labelled control instead of a bare KV line.
Per-app overrides, managed. Create, edit, duplicate, and delete override files under scb.conf.d/. Every game's detail page has a ScopeBuddy card that deep-links straight to the right <appid>.conf.
Detection that tells you things. Toasts when ScopeBuddy is installed, missing, or shadowed by an older fork — with install hints for Bazzite/SteamOS, Fedora (Terra), Arch (AUR), NixOS, and a curl fallback.
No more nano ~/.config/MangoHud/MangoHud.conf
MangoHud Visual Editor
Toggle metrics by category, position the overlay on 8 anchor points, set the hotkey — for the global config and per-game wine-<game>.conf overrides. Click any category for the full metric list.
Nine presets to start fast
Pick a preset, get a config
The sensible default: FPS, GPU, CPU, RAM.
# Preset: Standard — applied with one click fps frame_timing gpu_stats gpu_temp cpu_stats cpu_temp ram
Per-game overrides live in wine-<game>.conf files — ProtonShift auto-discovers existing ones, deep-links from each game's detail page, and creates new ones on demand.
Hardware at a glance
System Dashboard
GPU temps and VRAM, power profiles, connected displays, shader cache sizes, and controllers — one page inside the app, fed by the local backend on 127.0.0.1.
Every GPU vendor, live
NVIDIA via nvidia-smi, AMD and Intel via DRM sysfs. Live temperatures, utilization, and VRAM usage — no vendor control panel required.
Power profiles, one click
Switch between performance, balanced, and battery saver. Supports system76-power on Pop!_OS and powerprofilesctl everywhere else.
Displays and caches
Monitor detection via xrandr (X11) or wlr-randr (Wayland) with per-monitor resolution and refresh rate — plus per-game shader cache meters with one-click clearing.
# The System page is just the local API — script it if you like $ protonshift-api --port 8000 # Live OpenAPI explorer for every endpoint $ xdg-open http://127.0.0.1:8000/docs
The live gamepad tester, miniaturized.
This is a taste of ProtonShift's controller page. Plug in a controller and press anything — or click the buttons, or use Z X A S and the arrow keys after focusing the pad.
- Every button, every axis, every trigger in real time — buttons light up, axes turn into meters, deadzones are obvious.
- Auto-detection from /proc/bus/input — Xbox, PlayStation, Nintendo, and generic pads, with SDL_GAMECONTROLLERCONFIG mapping strings ready to copy.
- Rumble test — in the app, confirm haptics work before you fire up the game.
No controller detected — connect one and press any button, or just click around.
Under the hood
Architecture
A real desktop app with a real backend: an Electron shell hosts a Next.js static-export renderer, and everything that touches your OS funnels through a Python FastAPI sidecar on 127.0.0.1, authenticated with a per-launch bearer token. Hover any module to see what it does.
src/game_setup_hub/
Common questions
Frequently asked
Everything you might want to know before pointing ProtonShift at your library. If something isn't covered here, open an issue on GitHub — we update this list regularly.
Still curious? Open a question and we'll add it.
Free, open, and yours — forever.
ProtonShift is licensed under AGPL-3.0. Use it on your desktop, your handheld, your entire LAN party — no asterisks. The only commitment we ask back: improvements stay open so the next Linux gamer benefits too.
Every feature, every editor, every preset — no paywall, no premium tier, no upsell.
ProtonShift never phones home. The backend listens on 127.0.0.1 and nowhere else — your library stays your business.
AGPL-3.0 — copyleft for the network era. Ship a modified ProtonShift, even as a hosted service, and the source stays open.
Stop fighting configs.
Start playing.
One download, every distro. No terminal gymnastics, no JSON spelunking, no winetricks arcana — your whole library, properly configured.
v0.9.7 · AppImage, .deb, .rpm, and .flatpak · Free under AGPL-3.0. No accounts. No telemetry.