Install DCS World Standalone on Linux, and keep it working.
Status: pre-alpha. Nothing is implemented yet. The design is settled and the work is broken down in issue #1. There is no usable release. Everything below describes the intended tool.
Getting DCS running on Linux is not one problem, it is a pile of small ones: which Proton build, which winetricks verbs, which DLL overrides, and a handful of fixes for bugs that only show up on Linux. The community has solved all of it, but the answers are scattered across forum threads, wiki pages and half-maintained gists — and they go stale.
Worse, DCS's own updater overwrites those fixes every time it runs. Getting the game working once is achievable. Keeping it working is the part that wears people down.
dcs-linux-installer collects the known-good setup into one tool, applies the fixes, notices when a DCS update has reverted them, and puts them back.
It is aimed at anyone running Linux, not just one distro. Immutable systems like Bazzite and SteamOS are first-class.
- Install DCS World Standalone into a Wine prefix built with a pinned GE-Proton via umu-launcher
- Check your system and tell you exactly what is missing, with fixes that suit your distro
- Find DCS installs you already have — from Lutris, Heroic, Steam, or this tool
- Patch the known Linux-specific breakages, and re-apply them after DCS updates revert them
- Verify that DCS actually works, by reading its logs rather than assuming a process that started is a process that works
- Report a redacted diagnostics bundle you can paste into a bug report
- Head tracking — TrackIR and opentrack setup and permission checks
HOTAS configuration, VR, and SRS. Each is a large project in its own right. This tool installs the game and keeps it running.
DCS has an Integrity Check that hashes game files. Servers running pure-client enforcement reject clients whose files have been modified — and some of the necessary Linux fixes modify exactly those files.
So every patch declares whether it carries that risk. Safe patches apply by default. Anything that could cost you multiplayer access requires an explicit opt-in and says so plainly before it writes anything. Every patch is fully revertible back to a state that passes Integrity Check.
No silent trade of your multiplayer access for a single-player bug fix.
DCS is over 150 GB. Most setups put it inside the Wine prefix, which means Wine's most common repair — delete the prefix and rebuild it — also deletes the download.
Here the game lives on a path you choose, outside the prefix, mapped in. The prefix stays small enough to throw away and rebuild in seconds, and you can put the game on whichever drive has room.
# One-shot, no install
uvx --from dcs-linux-installer dcs-linux check
# Or install the command
uv tool install dcs-linux-installer
dcs-linux check # is this machine ready? what DCS installs exist?
dcs-linux install # build the prefix, then hand off to the DCS updater
dcs-linux patch # apply the Linux fixes (IC-safe ones by default)
dcs-linux verify # launch DCS and confirm it actually works
dcs-linux report # diagnostics bundle for a bug reportRequires uv. It installs to your home directory without root, so this works on immutable distros too.
| Area | Decision |
|---|---|
| Runtime | Pinned GE-Proton via umu-launcher |
| Layout | Game outside the prefix, mapped in; prefix small and disposable |
| Install flow | Prepare prefix → hand off to the DCS updater GUI → patch → verify |
| Discovery | Adopts existing Lutris / Heroic / Steam installs, not just its own |
| Patches | Backup plus state file, matched by content pattern rather than line number |
| Patch state | Stored in ~/.local/state/dcs-linux/, outside the install, where DCS_updater repair cannot delete it |
| Multiplayer | Per-patch Integrity Check risk; risky patches opt-in only |
| Interface | CLI subcommands with rich output, --json and --no-color, non-interactive flags throughout |
| Language | Python, managed by uv |
Full reasoning is in issue #1.
The tool targets many distros, GPUs and launcher layouts, but is developed on one machine. Bug reports are how coverage happens — once dcs-linux report exists, its output is the most useful thing you can attach.
Work is tracked as issues under #1. Anything labelled ready-for-agent with no open blockers is available to pick up.
Push a version tag; that is the whole process.
git tag v0.1.0
git push origin v0.1.0The version number comes from the tag itself, so the tag and the published package can never disagree. Uploads use PyPI trusted publishing — there is no API token in the repository or in CI. See ADR-0005.
This project stands on work the DCS Linux community did first:
- ChaosRifle/DCS-on-Linux
- budderpard/DCS_Standalone_on_linux
- TheZoq2/dcs_on_linux
- Hoggit wiki — DCS on Linux
MIT
Not affiliated with or endorsed by Eagle Dynamics. DCS World is their trademark.