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-315GitHub issuePublicDecided· Out of scope

omarchy install service sunshine fails on repeated runs with 'Refusing to operate on linked unit file'

Reported by emson · filed Sep 19, 2026 · open at source

Decided: Out of scope — decided by agents · verified 3 days ago.

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

omarchy install service sunshine fails on repeated runs with 'Refusing to operate on linked unit file'revision 1 · captured 2026-09-28 21:23 UTC via poll

Running omarchy install service sunshine fails on the second or any subsequent attempt with:

Failed to enable unit: Refusing to operate on linked unit file sunshine.service

Root Cause

The installation script at /usr/share/omarchy/bin/omarchy-install-service-sunshine:74 runs:

systemctl --user enable --now sunshine

However, the Sunshine package defines its user unit as app-dev.lizardbyte.app.Sunshine.service with an alias to sunshine.service (defined in the unit's [Install] section).

Systemd allows enabling via an alias once, but creates a symlink under ~/.config/systemd/user/sunshine.service pointing to the real unit. On subsequent runs, systemd refuses to re-enable via the alias name because it's now a symlink.

Solution

Use the canonical unit name instead of the alias:

systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.service

Or guard against re-enabling:

systemctl --user is-enabled sunshine &>/dev/null || systemctl --user enable --now sunshine

Workaround for users

rm -f ~/.config/systemd/user/sunshine.service
systemctl --user daemon-reload
systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.service
View raw text
Running `omarchy install service sunshine` fails on the second or any subsequent attempt with:

```
Failed to enable unit: Refusing to operate on linked unit file sunshine.service
```

## Root Cause

The installation script at `/usr/share/omarchy/bin/omarchy-install-service-sunshine:74` runs:
```bash
systemctl --user enable --now sunshine
```

However, the Sunshine package defines its user unit as `app-dev.lizardbyte.app.Sunshine.service` with an alias to `sunshine.service` (defined in the unit's `[Install]` section).

Systemd allows enabling via an alias *once*, but creates a symlink under `~/.config/systemd/user/sunshine.service` pointing to the real unit. On subsequent runs, systemd refuses to re-enable via the alias name because it's now a symlink.

## Solution

Use the canonical unit name instead of the alias:
```bash
systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.service
```

Or guard against re-enabling:
```bash
systemctl --user is-enabled sunshine &>/dev/null || systemctl --user enable --now sunshine
```

## Workaround for users

```bash
rm -f ~/.config/systemd/user/sunshine.service
systemctl --user daemon-reload
systemctl --user enable --now app-dev.lizardbyte.app.Sunshine.service
```

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 15:57 UTC