This commit is contained in:
2026-08-31 18:46:57 +02:00
parent 21c588f17a
commit 20fcf46c29
34 changed files with 4971 additions and 210 deletions
+64 -45
View File
@@ -1,62 +1,81 @@
# Omarchy Citizen 0.8.1 — Development Preview
# Citizen Launcher 0.9.0
Omarchy Citizen is moving from a frontend around the LUG installer to an
**owned, self-maintaining Star Citizen stack for Omarchy**.
Citizen Launcher is the distro-neutral successor to Omarchy Citizen.
## Goal
**Install Linux → install Citizen Launcher → log into RSI → play.**
The core is one static Go binary and does not depend on Omarchy. Omarchy is an optional integration under `integrations/omarchy/`.
## Supported targets
Primary targets:
- Debian / Ubuntu / Linux Mint
- Fedora
- Arch Linux / Omarchy
- openSUSE (generic user install)
Other amd64 Linux distributions can use the generic tarball when they provide a working Vulkan driver and the runtime requirements of the selected Wine runner.
## GUI
`citizen-launcher gui` starts a localhost-only UI from files embedded in the Go binary. Chromium-family browsers open it as a dedicated app window; otherwise it opens in the default browser. No GTK/Qt/WebKit development/runtime package is required by Citizen Launcher itself.
## Architecture
The critical install and launch path is owned by this project:
1. hardware / Vulkan readiness gate
2. select the newest locally compatible stable LUG Wine runner
3. validate it in a disposable Wine prefix
4. create the real Wine prefix
5. dynamically fetch current Winetricks and install required verbs
6. dynamically fetch and verify the current RSI Launcher
7. manage DXVK and the stable launch entry point
8. periodically maintain the user-space gaming stack
LUG Helper is **optional support/compatibility tooling**. Its failure must not
block installation and it never chooses the active Wine runner.
## Stable paths
User-space components live below:
```text
~/.local/share/omarchy-citizen/
~/.local/state/omarchy-citizen/
~/.config/omarchy-citizen/
Standalone GUI / Omarchy bar integration
↓
Citizen Launcher
Go core
↓
┌───────────────┼────────────────┐
Hardware Wine RSI Launcher
readiness selector installer
+ self-test
↓
Wine prefix
↓
Winetricks + DXVK
↓
Star Citizen
```
The backend intentionally hides upstream version/layout changes behind stable
`vendor/*/current` paths and its own game configuration.
The managed game stack lives in XDG user directories:
## Update safety
- `~/.config/citizen-launcher`
- `~/.local/share/citizen-launcher`
- `~/.local/state/citizen-launcher`
- `~/.cache/citizen-launcher`
- Wine candidates are tested before activation.
- Incompatible immutable Wine releases are cached per CPU/glibc fingerprint.
- Partial prefixes are backed up rather than deleted.
- RSI installer downloads are checked against the SHA-512 value from its
published update metadata.
- DXVK is not changed while the Wine prefix is active.
- Plugin Git updates retain the Omarchy validation / trusted-remote protection.
Existing `omarchy-citizen` data is migrated when possible.
## Current development status
## Build
See `DEVELOPMENT_STATUS.md`.
```bash
./build.sh
```
## License
## Install (any desktop distro)
MIT.
```bash
./install.sh
```
For Omarchy plus bar integration:
## 0.8.1 adapter hotfix
```bash
./install-omarchy.sh
```
The 0.8.0 preview accidentally mixed legacy shell actions with the new Go-owned
stack. `citizenctl` has been rewritten as a thin adapter. There is now one
authoritative implementation for install/status/launch/repair: the Go backend.
## Debian package
A regression test exercises the adapter with a fake backend, including the exact
full-setup path that previously failed with `backend_game_status: command not
found` / `notify: command not found`.
```bash
./packaging/build-deb.sh
```
## Security boundaries
Citizen Launcher manages its Wine/DXVK/RSI stack entirely as the current user. It does not create passwordless sudo/pacman/apt rules. GPU/kernel/base-system updates remain owned by the distribution.