This commit is contained in:
2026-08-31 18:17:56 +02:00
parent 907f05a22b
commit d8a11bb2bf
11 changed files with 1107 additions and 690 deletions
+36 -69
View File
@@ -1,84 +1,51 @@
# Omarchy Citizen 0.7.1
# Omarchy Citizen 0.8.0 — Development Preview
## Rundum-Sorglos / Autopilot
Omarchy Citizen is moving from a frontend around the LUG installer to an
**owned, self-maintaining Star Citizen stack for Omarchy**.
Omarchy Citizen 0.7.1 changes the architecture from "frontend for packages the
user maintains" to "self-maintaining Star Citizen appliance".
## Architecture
Autopilot manages the complete user-space gaming stack:
The critical install and launch path is owned by this project:
- Omarchy Citizen plugin updates (for clean Git-managed installs)
- official Star Citizen LUG Helper **AppImage**
- stable `lug-wine-tkg-git` Wine runner
- DXVK
- Wine prefix health testing
- launch-script Wine runner selection
- repair / recovery
- support logs
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
The LUG Helper AppImage is preferred over the AUR package. Current LUG releases
bundle their GUI/runtime dependencies, reducing the amount of Arch package
knowledge required from the player.
LUG Helper is **optional support/compatibility tooling**. Its failure must not
block installation and it never chooses the active Wine runner.
### Update model
## Stable paths
A systemd user timer runs every six hours. Each candidate Wine runner is tested
in a throw-away Wine prefix before it can become the active runner. The test
requires:
- successful `wineboot`
- `drive_c`
- `system.reg`
- `user.reg`
- a valid `%APPDATA%` response
If an upstream runner fails that test, the previous working runner stays active.
DXVK is only changed while the Star Citizen Wine prefix is not in use. Existing
DLLs are backed up before replacement.
### What Autopilot deliberately does not bypass
Kernel, GPU driver and base Omarchy package upgrades still belong to Omarchy's
blessed `omarchy update` pipeline. Omarchy Citizen does not install a passwordless
pacman/sudo backdoor.
That boundary lets the Star Citizen stack remain self-maintaining without giving
a third-party QML plugin permanent unattended root package-management rights.
## Local state
Managed components:
```text
~/.local/share/omarchy-citizen/vendor/
├── lug-helper/
├── wine/
└── dxvk/
```
Logs:
User-space components live below:
```text
~/.local/share/omarchy-citizen/
~/.local/state/omarchy-citizen/
├── omarchy-citizen.log
└── updater.log
~/.config/omarchy-citizen/
```
The backend intentionally hides upstream version/layout changes behind stable
`vendor/*/current` paths and its own game configuration.
## Update safety
- 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.
## Current development status
See `DEVELOPMENT_STATUS.md`.
## License
MIT.
## 0.7.1 compatibility fallback
Autopilot no longer assumes that the newest LUG Wine release is compatible with
every PC. It evaluates recent stable releases newest-first and activates the
first runner that passes the full local prefix test.
A rejected immutable release is cached against the current CPU/glibc
fingerprint, so it is not downloaded again every six hours. If the machine's
runtime fingerprint changes, it is eligible for retesting.
Wine diagnostics now include the actual process error (`signal: illegal
instruction`, missing loader/library, exit status, etc.) even when Wine writes
nothing to stdout.