A complete graphical front-end for installing, updating, managing and launching S.T.A.L.K.E.R. Anomaly with the GAMMA modpack on Linux.
What this is • Features • Installation • First run • Contributing • Credits • License • Discord
GAMMA is a huge S.T.A.L.K.E.R. Anomaly mod pack, normally installed through a Windows launcher and run through Mod Organizer 2. On Linux, the community solution is FaithBeam/stalker-gamma-cli — an excellent but entirely terminal-driven installer.
COMMANDER is a desktop GUI around that CLI. It doesn't reimplement any installer logic — it drives the real stalker-gamma binary as a subprocess and parses its output live. Every download, checksum and extraction is performed by the upstream CLI, so results are identical to using it by hand; you just get progress tables, a mod manager, prefix handling and a Play button instead of a terminal.
On top of the CLI, COMMANDER adds things it doesn't do on its own: launching through Mod Organizer 2 in a Wine/Proton prefix, a GE-Proton installer, a modlist.txt editor, dependency setup, and a full integrity check & repair pass.
The landing page. Shows the active profile, install status for Anomaly and GAMMA, a live dependency count, storage usage across your Anomaly/GAMMA/cache folders, and a background check for GAMMA addon updates. Quick-open buttons jump straight to the Anomaly, GAMMA, cache and log folders, and a Play GAMMA shortcut launches the game without leaving the page.
Installs S.T.A.L.K.E.R. Anomaly and GAMMA with a live per-addon progress table (name, operation, percent) and an overall completion bar. Pick a base folder and hit Create folders to auto-generate the Anomaly/GAMMA/cache layout.
- If a download is interrupted, the next launch offers Resume GAMMA Installation — cached archives are hash-verified and reused, only missing or changed ones are re-downloaded.
- Minimal mode deletes addon archives after extraction to save ~50 GB of disk space.
- Preserve user.ltx / Preserve MCM settings checkboxes protect your keybindings, game options and mod configs across a reinstall.
- Install Dependencies sets up everything MO2 and the game need in one click:
umu-run,protontricks(viapipxon PEP 668 systems), and eight Visual C++/DirectX runtimes (d3dcompiler_43,d3dcompiler_47,d3dx10,d3dx11_43,d3dx9,quartz,dx8vb,vcrun2022) — installed through the selected runner's own Wine (umu-run winetricksfor GE-Proton, the runner'swinebinary otherwise), never the systemwinetricks/wineon PATH. Running a different Wine build against a Proton prefix corrupts its system DLLs and makes the game crash-loop on launch; COMMANDER now refuses to do that.
Launch GAMMA through Mod Organizer 2, open MO2 directly, or run Anomaly's executable without the MO2 virtual file system. Targets are read straight from ModOrganizer.ini, with AnomalyLauncher.exe used as a fallback if none are found.
- Auto runner detection — the newest installed GE-Proton build is picked automatically and launched through
umu-run. - Built-in GE-Proton installer — browse recent GE-Proton releases, download with a progress bar and cancel support, and COMMANDER verifies the SHA-512 checksum and installs it into
compatibilitytools.dfor you. No manual downloading or extracting. - Per-runner prefixes — each runner remembers its own Wine prefix, so switching runners never corrupts a prefix built by a different version.
- A live command preview with a copy button, a custom launch options field (supports env vars like
PROTON_USE_WINED3D=1), and status chips showing installed GE-Proton builds, GameMode and MangoHud. - The game launches detached — closing COMMANDER doesn't kill your session — with output captured to a rotating
launcher.log. Failed launches are diagnosed automatically: a DXVK/Vulkan problem, a runner/prefix mismatch, or the classicconcrt140.dllerror are called out by name instead of surfacing a raw Wine crash, with a one-click option to bundle a bug report on the spot. - One-click desktop shortcuts that launch a specific target with the currently selected runner.
- Total playtime is tracked per profile and shown on the Dashboard.
- Optional Discord Rich Presence ("Playing S.T.A.L.K.E.R. GAMMA" with your mod count and total playtime) — off by default; one checkbox in Settings turns it on, no Discord developer setup needed.
Compares your installed GAMMA version and addon list against the latest official data — without hitting the rate-limited GitHub REST API — and shows exactly what changed: Added, Modified, Removed, and archive-name changes.
Applying updates reuses the same live progress UI as a fresh install, respects the Minimal/preserve-settings options, and holds the global install lock so it can never run alongside another install. A background check runs at most once a day even if you never open this page, with a desktop notification if one is found. If an update doesn't go well, Undo Last Update restores the modlist.txt snapshot taken right before it was applied.
Direct, careful editing of the active MO2 profile's modlist.txt — search, enable/disable, delete and reorder mods, grouped by the _separator categories GAMMA ships.
- Drag-and-drop reordering with multi-selection support, plus Move Up/Down.
- Reversed load order detection: a GAMMA load order that has been flipped end to end (which crashes the game on startup) is flagged in the Mod Manager and before launching, with a one-click fix.
- Create new categories, install a local ZIP/7Z/RAR/FOMOD mod archive straight into the modlist, and use the active profile as MO2's selected profile without opening MO2.
- A backup is taken automatically before your first edit (
modlist.txt.gammagui.bak) and can be restored from the UI, alongside a Restore Original Order option. - Writes are atomic — a crash or full disk cannot truncate your load order — and edits are blocked while Mod Organizer is running, since MO2 rewrites the file on exit and would silently discard them.
- Check for File Conflicts scans every enabled mod's files for ones shared by more than one mod, so you can see what the current load order is actually overriding.
- Press Ctrl+F anywhere in the app to jump straight to this page's search box.
Runs three passes: an Anomaly file check, a GAMMA presence check (every enabled mod must exist on disk), and a full MD5 scan of every file under gamma/mods against a saved baseline. Anything missing, corrupted or changed is reported.
If a broken mod matches an entry in the official GAMMA mod list, COMMANDER can repair it automatically and non-destructively: the mod folder and its cached archive are set aside (not deleted), then it's redownloaded and MD5-verified against the official checksum. If the reinstall fails or is cancelled, the set-aside copies are restored automatically — nothing is permanently lost until a repair is confirmed successful. Your own added mods and files are never touched, and anything with no known download source is reported instead of touched.
Create, edit, activate and delete CLI profiles — each with its own Anomaly, GAMMA, cache, MO2 profile, download-thread and repository settings. Creation, activation and deletion are delegated to stalker-gamma config so its side effects (MO2's selected_profile, modlist downloads) happen exactly as the CLI intends. Advanced fields expose every repo URL and branch the CLI supports, for anyone using a fork or mirror.
- Export/Import Profile saves a profile's portable settings (and its
modlist.txt, if installed) to a file you can back up or hand to a friend — install folders are always chosen fresh on import, since they're specific to each machine.
Checks every dependency GAMMA and MO2 need in one place: the CLI, Wine, Winetricks, Protontricks, umu-run, Vulkan (including the 32-bit loader), each individual Winetricks runtime, GE-Proton builds, GameMode and MangoHud. Every check shows its status and a copyable install command for your distro, and manual overrides let you point COMMANDER at tools installed in non-standard locations.
A toolbox for maintenance and recovery:
- Cache cleanup — preview which archives are out of date and how much space they'll free, then clean them.
- Clear shader cache and Remove ReShade for a clean slate after driver or mod changes.
- Fix GOG installation — repairs
ModOrganizer.inipaths for a GOG-provided copy of Anomaly. - Repair Wine prefix — restores the runner's own system DLLs if another Wine has written into the game's prefix (the symptom: every launch immediately crash-loops and can exhaust system memory). COMMANDER also refuses to launch into a prefix it detects as damaged, so this shouldn't come up in normal use — it exists for prefixes touched by something outside COMMANDER (a manual
winetricks/winecommand, another launcher). Reinstall dependencies afterward, since verb-installed runtimes are among the files a foreign Wine would have overwritten. - Move installation — copy Anomaly, GAMMA and cache to another drive, verified before the originals are deleted. An interrupted move is safely detected and resumed on the next launch.
- Create Log Dump and Export Diagnostics — bundle logs, settings and system info into one archive for bug reports.
- Fresh Reset, GAMMA Reset and Full Uninstall — guarded destructive actions that show exactly what will be deleted and what's kept (your Wine prefix always survives) before doing anything.
- Opens the bundled COMMANDER ASSISTANT log analyzer directly from the page.
- 10 languages — English, French, Spanish, German, Romanian, Polish, Russian, Ukrainian, Portuguese and Turkish. Switch anytime; it applies instantly with no restart, unless a background task is running.
- 6 themes — GAMMA, GAMMA Black, Dusk, Midnight, Terminal and Reactor, each with its own color palette.
- Interface font family (6 options) and size (9–22 px), both applied live.
- Startup page, default runner, an "Always use GameMode" toggle, an Open Winecfg shortcut, and MO2 Display Scale presets (100–200%) for readable text in Mod Organizer.
- Desktop autostart, launching COMMANDER automatically on login.
- Add to Steam — writes COMMANDER and Deck Mode straight into your Steam library as non-Steam games, no manual "Add a Non-Steam Game" dialog needed.
A second interface built for the Deck's 1280x800 screen, its controls and its touchscreen. Open it from the small Steam Deck icon on the Dashboard, next to Quick actions — COMMANDER closes and reopens in Deck Mode. Exit Deck Mode, on Deck Mode's Settings screen (or the ☰ Menu button), brings you back the same way.
- First-run setup. With no profile yet, Deck Mode asks one question — internal storage or SD card — and creates the profile for you, then sends you to Install.
- Tabs, in handheld order: Dashboard · Play · Mods · Update · Install · Utilities · System · Settings.
- Dashboard answers "can I play?" in one banner with the one button that moves things forward (Play, Install, Resume, Update), with playtime right under it, then Anomaly · GAMMA · Dependencies side by side, updates, mods, storage, and your profiles: switch, create, or edit a profile's name and its Anomaly / GAMMA / cache folders with a built-in folder browser.
- Play (launch target, runner, session timer, and Force Stop Game for a game that hangs — the Deck has no Alt+F4), Mods (the desktop Mod Manager's category tree as a full-screen list, in MO2 order with priority numbers; fold categories, filter, search, enable/disable a whole category), Update (every added / modified / removed mod, plus scrollable patch notes), Install (Anomaly, GAMMA, dependencies, GE-Proton, install options, and Resume after an interrupted install), Utilities (cache, shader cache, ReShade, GOG fix, prefix repair, move install, log dump, and the Uninstall / Reinstall resets), System check (with a Copy install command button on each missing item) and Settings.
- Handheld-aware. The Deck is kept awake while an install, update or move runs, you're warned before a long download on battery, the header shows the battery, and the footer shows the active profile and the time.
- Any screen size. On the Deck it fills the panel; on a bigger window — maximised on a monitor, or docked to a TV — the whole interface scales up with it.
Controls. The controller works in Game Mode out of the box — COMMANDER reads the gamepad directly, so Steam's default layout is fine — and in Desktop Mode's keyboard layout as well:
| Button | Action |
|---|---|
| D-pad / left stick | Move (hold to repeat) |
| A | Select / toggle |
| B | Back |
| X | The screen's main action (below) |
| Y | The screen's second action / search |
| L1 / R1 | Previous / next tab |
| L2 / R2 | Page up / down |
| ☰ Menu | Exit Deck Mode or quit |
| ⧉ View | Controls help |
| Screen | X | Y |
|---|---|---|
| Dashboard | What the banner says (Play / Install / Resume / Update) | Re-check |
| Play | Play GAMMA (Force Stop while running) | Open MO2 |
| Mods | Category menu | Search |
| Update | Check / Apply updates | Show changes |
| Install | Install or resume GAMMA | Install dependencies |
| System | Re-check | — |
The ☰ Menu button opens a quick menu from anywhere: Play GAMMA, Exit Deck Mode or Quit.
Text fields have a built-in on-screen keyboard (Y), touch works everywhere (tap to select, drag to scroll), and every screen shows its buttons in the footer. All six themes and all ten languages work as they do on the desktop, and the text size has its own 80–150% scale.
On a real Steam Deck, COMMANDER offers Deck Mode the first time it starts and remembers your answer (changeable later under Settings → When COMMANDER starts); in Game Mode it opens Deck Mode without asking. On any other machine it opens as an ordinary 1280x800 window, so you can try it out.
Adding Deck Mode to Steam so it works in Game Mode: in Desktop Mode, use Add COMMANDER to Steam (desktop Settings → Steam, or Deck Mode's Settings) — this writes both STALKER COMMANDER and STALKER COMMANDER DECK straight into your Steam library. If Steam is running it is closed first, the shortcuts are written, and Steam is started again. If you'd rather do it by hand, or the button can't tell which Steam account to use, the manual route still works:
- AUR / from source: in Desktop Mode, Add a Non-Steam Game and pick STALKER COMMANDER (Deck Mode).
- AppImage: add the
.AppImageitself, then set its launch options to--deck. An AppImage can only publish one desktop entry, so the Deck one cannot ride along with it.
Deck Mode full-screens itself under gamescope, which has no window manager to size a window for it.
Download the latest .AppImage from Releases:
chmod +x STALKER-GAMMA-COMMANDER-*-x86_64.AppImage
./STALKER-GAMMA-COMMANDER-*-x86_64.AppImagePython, Qt and the CLI are all bundled inside. For a menu entry and icon, use Gear Lever or AppImageLauncher.
A PKGBUILD is provided under packaging/aur/:
git clone https://github.com/SSH-Kitty/STALKER-GAMMA-COMMANDER.git
cd STALKER-GAMMA-COMMANDER/packaging/aur
makepkg -sigit clone https://github.com/SSH-Kitty/STALKER-GAMMA-COMMANDER.git
cd STALKER-GAMMA-COMMANDER
./run.shrun.sh creates a .venv/, installs PySide6, and launches the app. The stalker-gamma CLI is already bundled at cli/usr/bin/stalker-gamma.
Add --deck to start straight in Steam Deck Mode:
./run.sh --deck.
run.sh allows several instances at once, so you can run two builds side
by side while developing. Every extra window says [extra instance] in its
title bar — they all share ~/.config/stalker-gamma, so their settings writes
are last-write-wins, and nothing stops two of them starting an install into
the same folders. Use COMMANDER_ALLOW_MULTIPLE=0 ./run.sh for the shipped
behaviour. The AppImage and the AUR package are unaffected: both still refuse
a second instance, and the AppImage does so even if the variable is exported
in the shell that launches it.
QT_QPA_PLATFORM=offscreen .venv/bin/python -m pytest tests/ -qThe Qt platform has to be set on the command line — the suite builds real
widgets, and there is no pytest.ini to hold the variable.
- Profiles → set your Anomaly, GAMMA and Cache folders (use absolute paths) and create the profile — it activates automatically.
- Install → Install GAMMA. Anomaly is installed first if it's missing. Expect a large download: ~150 GB, or ~100 GB with Minimal mode.
- Install → Install Dependencies — sets up the Wine/Proton runtimes MO2 needs.
- Play → pick a runner and launch target, then Launch Game.
Use Updates for addon updates afterward, and Verify Integrity if something seems broken.
Adding a new language is copy-and-fill-in, no code changes needed: start
from commander_gui/locales/template.py,
which lists every translatable string in the app. See the instructions
in that file's header for the exact steps.
- FaithBeam —
stalker-gamma-cli, the installer this GUI drives and bundles. All installation, download and checksum logic is theirs. - dnttnd — testing implementations, dev builds, bug reports, and helping polish the UI.
- Grokitach and the GAMMA team — the mod pack itself.
- GSC Game World and the Anomaly team, for the game.
Licensed under the GNU General Public License v3.0 — see LICENSE. This project bundles and drives stalker-gamma-cli, which is GPL-3.0, so this front-end is GPL-3.0 as well.
- Copyright for Python/Qt graphical interface: SSH-Kitty
Not affiliated with GSC Game World or the GAMMA development team.