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.
omarchy install service sunshine fails: enabling by Alias= before the unit is enabled can never resolve
Reported by mikkelon · filed Sep 2, 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
What happened
omarchy install service sunshine aborts partway through on a fresh install:
Installing Sunshine...
...
(4/4) installing sunshine [====] 100%
Failed to enable unit: Unit sunshine.service does not existThe package installs fine, but the script exits at that point and never completes.
Root cause
bin/omarchy-install-service-sunshine line 74 runs:
systemctl --user enable --now sunshineThe omarchy/sunshine package does not ship a sunshine.service. It ships:
/usr/lib/systemd/user/app-dev.lizardbyte.app.Sunshine.serviceThat unit declares Alias=sunshine.service in its [Install] section — but asystemd Alias= is only materialised as a symlink when the unit is enabled.
So on a fresh install sunshine.service does not yet exist, and enabling *by the
alias* is a chicken-and-egg that can never succeed.
Enabling by the real unit name works and creates the alias, after whichsunshine.service resolves normally:
$ 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' → ...
$ systemctl --user is-active sunshine.service
activeImpact
The script has set -e, so the failed enable aborts everything after line 74:
- Sunshine is not enabled or started
- UFW streaming ports (47984/47989/48010 TCP, 5353/47998/47999/48000/48002/48010 UDP) are not opened for private LANs or
tailscale0 - The "Sunshine Admin" web app is not installed
o.launch_on_start("sunshine")is not added to~/.config/hypr/autostart.lua
The user is left with a Sunshine package installed but entirely non-functional, and
the only visible symptom is the one-line Failed to enable unit message.
Steps to reproduce
- On a system without Sunshine installed, run
omarchy install service sunshine - Observe
Failed to enable unit: Unit sunshine.service does not exist systemctl --user is-enabled app-dev.lizardbyte.app.Sunshine.service→disabledls ~/.local/share/applications | grep -i sunshine→ nothingtail ~/.config/hypr/autostart.lua→ nolaunch_on_startentry
Expected
The install completes: the service is enabled and running, ports are opened, and the
admin web app is installed.
Suggested fix
Enable the unit by the name the package actually ships:
systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.serviceWorth noting: that unit is already WantedBy=graphical-session.target, so it starts
with the session on its own. The separate o.launch_on_start("sunshine") autostart
entry the script adds will spawn a second instance competing for the same ports —
possibly worth dropping as part of the same fix.
System details
| Omarchy | 4.0.2-1 |
| sunshine | 2026.516.143833-4 (omarchy repo) |
| systemd | 261.2-1 |
| Kernel | 7.1.9-arch1-2 |
| CPU | Intel Core Ultra 9 285K |
| GPU | Intel Arrow Lake-S (integrated) |
View raw text
### What happened
`omarchy install service sunshine` aborts partway through on a fresh install:
```
Installing Sunshine...
...
(4/4) installing sunshine [====] 100%
Failed to enable unit: Unit sunshine.service does not exist
```
The package installs fine, but the script exits at that point and never completes.
### Root cause
`bin/omarchy-install-service-sunshine` line 74 runs:
```bash
systemctl --user enable --now sunshine
```
The `omarchy/sunshine` package does not ship a `sunshine.service`. It ships:
```
/usr/lib/systemd/user/app-dev.lizardbyte.app.Sunshine.service
```
That unit declares `Alias=sunshine.service` in its `[Install]` section — but a
`systemd` `Alias=` is only materialised as a symlink **when the unit is enabled**.
So on a fresh install `sunshine.service` does not yet exist, and enabling *by the
alias* is a chicken-and-egg that can never succeed.
Enabling by the real unit name works and creates the alias, after which
`sunshine.service` resolves normally:
```
$ 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' → ...
$ systemctl --user is-active sunshine.service
active
```
### Impact
The script has `set -e`, so the failed `enable` aborts everything after line 74:
- Sunshine is **not** enabled or started
- UFW streaming ports (47984/47989/48010 TCP, 5353/47998/47999/48000/48002/48010 UDP) are **not** opened for private LANs or `tailscale0`
- The "Sunshine Admin" web app is **not** installed
- `o.launch_on_start("sunshine")` is **not** added to `~/.config/hypr/autostart.lua`
The user is left with a Sunshine package installed but entirely non-functional, and
the only visible symptom is the one-line `Failed to enable unit` message.
### Steps to reproduce
1. On a system without Sunshine installed, run `omarchy install service sunshine`
2. Observe `Failed to enable unit: Unit sunshine.service does not exist`
3. `systemctl --user is-enabled app-dev.lizardbyte.app.Sunshine.service` → `disabled`
4. `ls ~/.local/share/applications | grep -i sunshine` → nothing
5. `tail ~/.config/hypr/autostart.lua` → no `launch_on_start` entry
### Expected
The install completes: the service is enabled and running, ports are opened, and the
admin web app is installed.
### Suggested fix
Enable the unit by the name the package actually ships:
```bash
systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.service
```
Worth noting: that unit is already `WantedBy=graphical-session.target`, so it starts
with the session on its own. The separate `o.launch_on_start("sunshine")` autostart
entry the script adds will spawn a second instance competing for the same ports —
possibly worth dropping as part of the same fix.
### System details
| | |
|---|---|
| Omarchy | 4.0.2-1 |
| sunshine | 2026.516.143833-4 (omarchy repo) |
| systemd | 261.2-1 |
| Kernel | 7.1.9-arch1-2 |
| CPU | Intel Core Ultra 9 285K |
| GPU | Intel Arrow Lake-S (integrated) |
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.