Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A 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.

Inbox
ReportR-5032GitHub issuePublicReceived

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.

Received and recorded verbatim. Nothing has been checked yet.

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

install service sunshine: systemctl enable fails (unit ships under app-* name with Alias), script aborts before opening firewall portsrevision 1 · captured 2026-10-04 12:10 UTC via poll

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:

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:

[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:

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:

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.