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` starts Sunshine twice; the second instance SIGABRTs
Reported by kreendurron · filed Sep 18, 2026Closed upstream on 2026-10-12 by the bot omarchybot, as a duplicate (target not recorded).
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
What happened
Installing Sunshine with omarchy-install-service-sunshine enables two autostart paths. On Hyprland login both copies start; the extra process SIGABRTs, and the desktop crash notification fires.
The surviving copy is the systemd user unit. Streaming still works. The abort is the duplicate.
What was expected
Sunshine should start once, via the user unit (app-dev.lizardbyte.app.Sunshine.service, aliased as sunshine.service). The shipped .desktop file already does systemctl start --u app-dev.lizardbyte.app.Sunshine.
Steps to reproduce
- Run
omarchy-install-service-sunshine(or otherwise have both the user unit enabled ando.launch_on_start("sunshine")in~/.config/hypr/autostart.lua). - Log into a Hyprland session.
- Observe two
/usr/bin/sunshineprocesses at login, then a SIGABRT from the Hyprland/uwsm copy.
Cause
omarchy-install-service-sunshine does both of these:
systemctl --user enable --now sunshine
# ...
enable_hyprland_autostart # appends o.launch_on_start("sunshine")o.launch_on_start("sunshine") is uwsm-app -- sunshine, i.e. a second /usr/bin/sunshine, not systemctl start.
On this machine at 2026-09-17 20:24 CDT:
| Time | What |
|---|---|
| 20:24:48 | user unit starts (ExecStartPre=/bin/sleep 5) |
| 20:24:52 | Hyprland autostart launches PID 2732 via app-Hyprland-sunshine-*.scope |
| 20:24:53 | systemd copy PID 2791 execs |
| 20:25:16.384 | PID 2791: Configuration UI available at [https://localhost:47990] (ports bound) |
| 20:25:16.545 | PID 2732 SIGABRT |
The crashing thread is named nvhttp::47984 (Sunshine GameStream HTTPS). Stack is __cxa_throw → _Unwind_RaiseException → abort(). Main thread was still in gtk_init_check / wl_cursor_theme_load (tray). Strong inference: the second instance failed to bind TCP 47984 after the systemd copy already had it, and the exception escaped that thread. The binary is stripped and the core is root-owned, so the throw type was not read from the dump.
Sunshine docs say not to run multiple instances. The abort is Sunshine being brittle; the trigger is Omarchy starting it twice.
Suggested fix
Autostart only through the user unit. Do not append o.launch_on_start("sunshine"). omarchy-remove-service-sunshine already deletes that line; the installer should not add it.
Workaround: delete o.launch_on_start("sunshine") from ~/.config/hypr/autostart.lua and keep systemctl --user enable sunshine.
System
- Omarchy: 4.0.3-1 (stable)
- Packages last upgraded: Monday, September 14 2026
- sunshine: 2026.516.143833-4.1 (omarchy), commit 14ffa6fdaa53f7b51512be2b3d24f3939695403c
- Kernel: 7.2.3-arch1-3
- Hyprland: 0.56.2
- Machine: Dell Precision 7720 (Intel HD Graphics 630 + AMD Radeon Pro WX 4130/4150)
- Debug log: https://logs.omarchy.org/1ptq8D (also written locally as
/tmp/omarchy-debug.log)
Not OOM; ~24 GiB RAM free. This is the only sunshine coredump on the machine. It will recur on every login until one autostart path is removed.
Filed by Grok 4.6 via Grok Build.
View raw text
## What happened
Installing Sunshine with `omarchy-install-service-sunshine` enables **two** autostart paths. On Hyprland login both copies start; the extra process SIGABRTs, and the desktop crash notification fires.
The surviving copy is the systemd user unit. Streaming still works. The abort is the duplicate.
## What was expected
Sunshine should start once, via the user unit (`app-dev.lizardbyte.app.Sunshine.service`, aliased as `sunshine.service`). The shipped `.desktop` file already does `systemctl start --u app-dev.lizardbyte.app.Sunshine`.
## Steps to reproduce
1. Run `omarchy-install-service-sunshine` (or otherwise have both the user unit enabled and `o.launch_on_start("sunshine")` in `~/.config/hypr/autostart.lua`).
2. Log into a Hyprland session.
3. Observe two `/usr/bin/sunshine` processes at login, then a SIGABRT from the Hyprland/uwsm copy.
## Cause
`omarchy-install-service-sunshine` does both of these:
```bash
systemctl --user enable --now sunshine
# ...
enable_hyprland_autostart # appends o.launch_on_start("sunshine")
```
`o.launch_on_start("sunshine")` is `uwsm-app -- sunshine`, i.e. a second `/usr/bin/sunshine`, not `systemctl start`.
On this machine at 2026-09-17 20:24 CDT:
| Time | What |
|---|---|
| 20:24:48 | user unit starts (`ExecStartPre=/bin/sleep 5`) |
| 20:24:52 | Hyprland autostart launches PID 2732 via `app-Hyprland-sunshine-*.scope` |
| 20:24:53 | systemd copy PID 2791 execs |
| 20:25:16.384 | PID 2791: `Configuration UI available at [https://localhost:47990]` (ports bound) |
| 20:25:16.545 | PID 2732 SIGABRT |
The crashing thread is named `nvhttp::47984` (Sunshine GameStream HTTPS). Stack is `__cxa_throw` → `_Unwind_RaiseException` → `abort()`. Main thread was still in `gtk_init_check` / `wl_cursor_theme_load` (tray). Strong inference: the second instance failed to bind TCP 47984 after the systemd copy already had it, and the exception escaped that thread. The binary is stripped and the core is root-owned, so the throw type was not read from the dump.
Sunshine docs say not to run multiple instances. The abort is Sunshine being brittle; the **trigger** is Omarchy starting it twice.
## Suggested fix
Autostart only through the user unit. Do not append `o.launch_on_start("sunshine")`. `omarchy-remove-service-sunshine` already deletes that line; the installer should not add it.
Workaround: delete `o.launch_on_start("sunshine")` from `~/.config/hypr/autostart.lua` and keep `systemctl --user enable sunshine`.
## System
- Omarchy: 4.0.3-1 (stable)
- Packages last upgraded: Monday, September 14 2026
- sunshine: 2026.516.143833-4.1 (omarchy), commit 14ffa6fdaa53f7b51512be2b3d24f3939695403c
- Kernel: 7.2.3-arch1-3
- Hyprland: 0.56.2
- Machine: Dell Precision 7720 (Intel HD Graphics 630 + AMD Radeon Pro WX 4130/4150)
- Debug log: https://logs.omarchy.org/1ptq8D (also written locally as `/tmp/omarchy-debug.log`)
Not OOM; ~24 GiB RAM free. This is the only sunshine coredump on the machine. It will recur on every login until one autostart path is removed.
Filed by Grok 4.6 via Grok Build.
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:10 UTC