Deckless is a Linux toolkit that keeps the official Steam package intact while fixing three pain points that desktop Linux users regularly hit outside SteamOS:
- split proxy policy for Steam web content vs. game traffic
- Big Picture GPU fallback and related audio/runtime quirks
- couch-mode handoff between Big Picture and launched games on i3
It started from a real Arch Linux desktop that needed direct game traffic, proxied Steam community/store access, and a better controller-first Big Picture workflow.
- Keeps
/usr/bin/steamas the official upstream client. - Proxies only
steamwebhelpertraffic, so store, community pages, avatars, and embedded web content can use a proxy while games and downloads stay direct. - Restores the original
steamwebhelper_sniper_wrap.shshortly after Steam exits through a detached cleanup helper. - Removes Steam's
--disable-gpuand--disable-gpu-compositingflags for Big Picture webhelper sessions. - Exports sane
GBM,EGL, and PulseAudio defaults to help Steam stay on hardware acceleration instead of dropping to software rendering. - Launches Big Picture through
gamescopeandgamemodewhen they are available. - Ships an optional i3 bridge that lets a newly launched game take fullscreen from Big Picture and hands fullscreen back when the game exits.
- Installs cleanly into XDG paths and can be rolled back with
./uninstall.sh.
Validated on March 28, 2026 on an Arch Linux desktop with X11, i3, NVIDIA 595.58.3, and a 240 Hz monitor.
The live validation for this repository confirmed:
- Steam updater verification completed without a wrapper size mismatch loop.
- The top-level
steamwebhelperlaunched with--proxy-server=...and without Steam's forced--disable-gpu*flags. webhelper_gpu.txtreportedgpu_compositing: enabled,opengl: enabled_on, andvideo_decode: enabled.- Big Picture opened as a focused fullscreen
steamwebhelperwindow under i3.
- Official Steam first, customization second.
- No permanent mutation of Steam runtime files at rest.
- Small, auditable shell scripts instead of a daemon-heavy stack.
- Easy to adopt on one machine and easy to explain to another Linux player.
- Install the official Steam package for your distribution.
- Install the runtime helpers you want:
- required:
bash,jq - optional:
gamescope,gamemode - optional for i3 autostart:
dexor another XDG autostart runner
- required:
- Copy the proxy template and edit it for your local proxy:
mkdir -p ~/.config/deckless
cp config/proxy-env.example.sh ~/.config/deckless/proxy-env.sh- Review the optional runtime settings:
cp config/deckless.env.example ~/.config/deckless/deckless.env- Install Deckless:
./install.sh- Start Steam as usual:
steamFor a controller-first session, launch:
steam-bigpictureThis repository also ships a PKGBUILD for a rolling deckless-git package.
From a local clone:
makepkg -si
deckless-installThat installs Deckless under /usr/share/deckless and exposes:
deckless-installdeckless-uninstall
~/.local/share/deckless/bin/deckless-steam~/.local/share/deckless/bin/deckless-bigpicture~/.local/share/deckless/bin/deckless-i3-bigpicture-bridge~/.local/share/deckless/bin/deckless-sync-webhelper-wrapper~/.local/share/deckless/bin/deckless-webhelper-heal~/.local/share/deckless/bin/deckless-webhelper-cleanup~/.local/bin/steam~/.local/bin/steam-bigpicture~/.local/share/applications/steam.desktop~/.local/share/applications/steam-bigpicture.desktop~/.config/autostart/deckless-i3-bigpicture-bridge.desktop
Deckless also stores first-install backups under ~/.local/share/deckless/backups/original.
Deckless looks for proxy settings in this order:
DECKLESS_PROXY_ENV~/.config/deckless/proxy-env.sh~/.config/network/proxy-env.sh- inherited shell proxy variables
Only the top-level Steam webhelper gets the resulting Chromium proxy flags. The main Steam client and launched games have proxy environment variables cleared before Steam starts.
~/.config/deckless/deckless.env can override:
DECKLESS_STEAM_BINDECKLESS_LANGDECKLESS_FC_LANGDECKLESS_INPUT_METHODDECKLESS_USE_GAMEMODEDECKLESS_USE_GAMESCOPEDECKLESS_GAMESCOPE_REFRESHDECKLESS_USE_MANGOAPP
The i3 bridge is installed as an XDG autostart entry with OnlyShowIn=i3;.
If your i3 session is started by dex, lxsession, or another autostart runner, the bridge will come up automatically in future sessions. install.sh also attempts to start it immediately when it detects a live i3 session.
See docs/i3.md for the handoff behavior.
- Arch Linux
- official
steampackage - X11
- i3
- NVIDIA proprietary driver 595.58.3
- 240 Hz display
gamescopegamemodejq
Other X11 desktop environments may still benefit from the proxy split and Big Picture GPU fixes, but the fullscreen handoff bridge is currently i3-specific.
- Deckless never replaces
/usr/bin/steam. - The Steam runtime wrapper is only rewritten while Steam is active.
- The original wrapper is restored shortly after Steam exits, once Steam activity is gone.
./uninstall.shrestores the local launchers and desktop entries that existed before the first install.
Deckless is licensed under GPL-3.0-or-later. See LICENSE.
