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.
Sunshine installer fails: enables unit by its Alias name (sunshine.service does not exist)
Reported by winnorton · filed Sep 30, 2026 · open at source
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?
- AreaOutside the audited area· Decided by agents · verified
- 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?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
System details
Intel i7-10875H, NVIDIA RTX 3080 Mobile (hybrid graphics, compositor on the Intel iGPU), Omarchy 4.0.4-1, omarchy/sunshine 2026.516.143833-4.1
What's wrong?
omarchy install service sunshine aborts right after the package installs, so none of the follow-up steps run: no UFW rules, no "Sunshine Admin" web app, no autostart entry.
$ omarchy install service sunshine
Installing Sunshine...
[sudo] password for win:
...
(3/3) installing sunshine [------------------] 100%
...
Failed to enable unit: Unit sunshine.service does not existCause. bin/omarchy-install-service-sunshine runs
systemctl --user enable --now sunshinebut the sunshine package currently in the omarchy repo ships its user unit as/usr/lib/systemd/user/app-dev.lizardbyte.app.Sunshine.service. That unit only
carries sunshine.service as an Alias= in its [Install] section:
$ pacman -Ql sunshine | grep systemd/user/
sunshine /usr/lib/systemd/user/app-dev.lizardbyte.app.Sunshine.service
$ grep -E 'Alias|WantedBy' /usr/lib/systemd/user/app-dev.lizardbyte.app.Sunshine.service
WantedBy=graphical-session.target
Alias=sunshine.servicePer systemd.unit(5), Alias= names are symlinks that systemctl enable
creates when the unit is enabled. On a fresh install that symlink does not
exist yet, so enabling by the alias name fails, and set -e stops the script
there. bin/omarchy-remove-service-sunshine uses the same alias name in itssystemctl --user disable --now sunshine, which is harmless because of the|| true, but leaves the unit enabled if the alias was never created.
Workaround that confirms it. Enabling by the real unit name works and
creates the alias as a side effect:
$ systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.service
Created symlink '~/.config/systemd/user/sunshine.service' → '/usr/lib/systemd/user/app-dev.lizardbyte.app.Sunshine.service'.
Created symlink '~/.config/systemd/user/graphical-session.target.wants/app-dev.lizardbyte.app.Sunshine.service' → ...After that, systemctl --user enable --now sunshine succeeds too.
Suggested fix. Use the real unit name in both scripts, e.g.
systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.service
...
systemctl --user disable --now app-dev.lizardbyte.app.Sunshine.service 2>/dev/null || trueSteps to reproduce: on a machine without Sunshine installed, runomarchy install service sunshine and watch it stop at "Failed to enable unit".
Separately, since the installer also appends o.launch_on_start("sunshine")
to autostart.lua while the systemd unit is WantedBy=graphical-session.target,
a successful run starts Sunshine twice per login. The second copy fails to bind
its ports and exits, so it is only noise, but it may be worth dropping one of
the two.
View raw text
### System details
Intel i7-10875H, NVIDIA RTX 3080 Mobile (hybrid graphics, compositor on the Intel iGPU), Omarchy 4.0.4-1, `omarchy/sunshine 2026.516.143833-4.1`
### What's wrong?
`omarchy install service sunshine` aborts right after the package installs, so none of the follow-up steps run: no UFW rules, no "Sunshine Admin" web app, no autostart entry.
```
$ omarchy install service sunshine
Installing Sunshine...
[sudo] password for win:
...
(3/3) installing sunshine [------------------] 100%
...
Failed to enable unit: Unit sunshine.service does not exist
```
**Cause.** `bin/omarchy-install-service-sunshine` runs
```
systemctl --user enable --now sunshine
```
but the `sunshine` package currently in the omarchy repo ships its user unit as
`/usr/lib/systemd/user/app-dev.lizardbyte.app.Sunshine.service`. That unit only
carries `sunshine.service` as an `Alias=` in its `[Install]` section:
```
$ pacman -Ql sunshine | grep systemd/user/
sunshine /usr/lib/systemd/user/app-dev.lizardbyte.app.Sunshine.service
$ grep -E 'Alias|WantedBy' /usr/lib/systemd/user/app-dev.lizardbyte.app.Sunshine.service
WantedBy=graphical-session.target
Alias=sunshine.service
```
Per `systemd.unit(5)`, `Alias=` names are symlinks that `systemctl enable`
creates when the unit is enabled. On a fresh install that symlink does not
exist yet, so enabling by the alias name fails, and `set -e` stops the script
there. `bin/omarchy-remove-service-sunshine` uses the same alias name in its
`systemctl --user disable --now sunshine`, which is harmless because of the
`|| true`, but leaves the unit enabled if the alias was never created.
**Workaround that confirms it.** Enabling by the real unit name works and
creates the alias as a side effect:
```
$ systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.service
Created symlink '~/.config/systemd/user/sunshine.service' → '/usr/lib/systemd/user/app-dev.lizardbyte.app.Sunshine.service'.
Created symlink '~/.config/systemd/user/graphical-session.target.wants/app-dev.lizardbyte.app.Sunshine.service' → ...
```
After that, `systemctl --user enable --now sunshine` succeeds too.
**Suggested fix.** Use the real unit name in both scripts, e.g.
```
systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.service
...
systemctl --user disable --now app-dev.lizardbyte.app.Sunshine.service 2>/dev/null || true
```
Steps to reproduce: on a machine without Sunshine installed, run
`omarchy install service sunshine` and watch it stop at "Failed to enable unit".
Separately, since the installer also appends `o.launch_on_start("sunshine")`
to `autostart.lua` while the systemd unit is `WantedBy=graphical-session.target`,
a successful run starts Sunshine twice per login. The second copy fails to bind
its ports and exits, so it is only noise, but it may be worth dropping one of
the two.
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.
- Out of scopeDecided by agents · verified · 2026-10-09 20:21 UTC