Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
install service sunshine: systemctl enable fails (unit ships under app-* name with Alias), script aborts before opening firewall ports
Reported by lw396 · filed Sep 11, 2026Closed upstream on 2026-09-20 by bjarneo via an automated message, as a duplicate of #7050 (R-1810). GitHub close reason: completed.
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- Not yet mapped to any requirement or component.
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.
Original report
System details
AMD Ryzen 7 9700X, NVIDIA RTX 5070 (hybrid), Omarchy 4.0.3-1, sunshine 2026.516.143833-4.1 (from the omarchy repo)
What's wrong?
omarchy install service sunshine installs the package, then dies at the service-enabling step, silently skipping the rest of the setup (firewall ports, admin webapp, autostart).
$ omarchy install service sunshine
...
(4/4) 正在安装 sunshine [-----------------------------------------------] 100%
...
Failed to enable unit: Unit sunshine.service does not existRoot cause
omarchy-install-service-sunshine runs:
omarchy-pkg-add sunshine
systemctl --user enable --now sunshineHowever, the sunshine package only ships a single user unit:
$ pacman -Ql sunshine | grep systemd
sunshine /usr/lib/systemd/user/app-dev.lizardbyte.app.Sunshine.serviceThat unit declares an alias rather than being named sunshine.service directly:
[Install]
WantedBy=graphical-session.target
Alias=sunshine.serviceThe sunshine.service alias symlink only comes into existence after the unit has been enabled by its real name, so enabling by the alias name on a fresh install cannot resolve the unit (chicken-and-egg).
Consequences
The script uses set -e, so it aborts immediately after the package install. Everything after the failed systemctl line is skipped with no indication:
- Moonlight streaming UFW ports are never opened (
open_ufw_ports) - The "Sunshine Admin" webapp is never installed (
install_admin_webapp) - The Hyprland autostart entry is never added (
enable_hyprland_autostart)
Result: a half-installed sunshine (not running, firewall closed) that looks installed.
Reproduction
- Fresh Omarchy 4.0.3-1 install
omarchy install service sunshine- Observe the
Failed to enable unit: Unit sunshine.service does not existerror - Verify the leftovers:
systemctl --user status sunshine(not found),sudo ufw status | grep omarchy-sunshine(no rules), no Sunshine Admin webapp, nothing appended to~/.config/hypr/autostart.lua
Workaround
Enable by the real unit name:
systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.serviceThis works, starts sunshine, and (as a side effect) creates the sunshine.service alias symlink — after which the script's original command would also resolve.
Suggested fix
In omarchy-install-service-sunshine, enable the unit by its shipped name:
systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.service(and optionally rerun the installer's remaining steps if supporting already-installed systems matters).
View raw text
## System details AMD Ryzen 7 9700X, NVIDIA RTX 5070 (hybrid), Omarchy 4.0.3-1, sunshine 2026.516.143833-4.1 (from the omarchy repo) ## What's wrong? `omarchy install service sunshine` installs the package, then dies at the service-enabling step, silently skipping the rest of the setup (firewall ports, admin webapp, autostart). ``` $ omarchy install service sunshine ... (4/4) 正在安装 sunshine [-----------------------------------------------] 100% ... Failed to enable unit: Unit sunshine.service does not exist ``` ### Root cause `omarchy-install-service-sunshine` runs: ```bash omarchy-pkg-add sunshine systemctl --user enable --now sunshine ``` However, the sunshine package only ships a single user unit: ``` $ pacman -Ql sunshine | grep systemd sunshine /usr/lib/systemd/user/app-dev.lizardbyte.app.Sunshine.service ``` That unit declares an alias rather than being named `sunshine.service` directly: ```ini [Install] WantedBy=graphical-session.target Alias=sunshine.service ``` The `sunshine.service` alias symlink only comes into existence **after** the unit has been enabled by its real name, so enabling by the alias name on a fresh install cannot resolve the unit (chicken-and-egg). ### Consequences The script uses `set -e`, so it aborts immediately after the package install. Everything after the failed `systemctl` line is skipped with no indication: - Moonlight streaming UFW ports are never opened (`open_ufw_ports`) - The "Sunshine Admin" webapp is never installed (`install_admin_webapp`) - The Hyprland autostart entry is never added (`enable_hyprland_autostart`) Result: a half-installed sunshine (not running, firewall closed) that looks installed. ### Reproduction 1. Fresh Omarchy 4.0.3-1 install 2. `omarchy install service sunshine` 3. Observe the `Failed to enable unit: Unit sunshine.service does not exist` error 4. Verify the leftovers: `systemctl --user status sunshine` (not found), `sudo ufw status | grep omarchy-sunshine` (no rules), no Sunshine Admin webapp, nothing appended to `~/.config/hypr/autostart.lua` ### Workaround Enable by the real unit name: ```bash systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.service ``` This works, starts sunshine, and (as a side effect) creates the `sunshine.service` alias symlink — after which the script's original command would also resolve. ### Suggested fix In `omarchy-install-service-sunshine`, enable the unit by its shipped name: ```bash systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.service ``` (and optionally rerun the installer's remaining steps if supporting already-installed systems matters).
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
Not linked to any known issue, other report or change yet.
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
No decision has been recorded yet.