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

`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).

Decided: Out of scope — decided by agents · verified 4 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` starts Sunshine twice; the second instance SIGABRTsrevision 1 · captured 2026-09-28 21:23 UTC via poll

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:

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:

TimeWhat
20:24:48user unit starts (ExecStartPre=/bin/sleep 5)
20:24:52Hyprland autostart launches PID 2732 via app-Hyprland-sunshine-*.scope
20:24:53systemd copy PID 2791 execs
20:25:16.384PID 2791: Configuration UI available at [https://localhost:47990] (ports bound)
20:25:16.545PID 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