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.
Hyprland crash-loop on boot (aquamarine DRM backend teardown), bar position corrupted
Reported by delhub · filed Sep 15, 2026 · open at source
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
System details
Omarchy 4.0.3-1 - See additional details in Description
What's wrong?
Hyprland/Aquamarine crash-loop on boot, plus bar position corrupted to "left"
Summary
After a routine package install + reboot, Hyprland repeatedly crashed on startup
(3 coredumps in ~10 minutes, identical stack trace each time), leaving the
screen blank/unusable through 5 login attempts. Only a hard power-down
recovered it. On the subsequent clean boot, the top bar (omarchy-shell)
came up anchored to the left edge instead of top, because it started
before any display outputs were available and wrote that bad state to the
user's live config (~/.config/omarchy/shell.json), not just a runtime
placeholder.
Environment
- Omarchy 4.0.3-1
- Hyprland 0.56.2-2 (
efb50993780079460b0cbed1363e2166a2de1d9f, tag v0.56.2) - aquamarine 0.15.0-2
- quickshell 0.3.1-1
- Linux 7.2.3-arch1-3
- Hardware: MSI Vector 17 HX A14VHG, hybrid graphics (Intel Raptor Lake iGPU +
NVIDIA RTX 4080 Max-Q). External monitor connected via a Plugable
USB4-HUB3A dock (DisplayPort Alt-Mode tunneled over Thunderbolt to the
Intel iGPU, appears as DP-4). Internal panel is eDP-2.
What triggered the reboot
Installing xpadneo-dkms 0.10.4-1.1 (unrelated Xbox/Bluetooth controller
driver) pulled in linux-headers, rebuilt the DKMS module and the UKI, and
the machine was rebooted afterward as prompted. The controller driver itself
is almost certainly incidental — the failure that followed is entirely in
the display/compositor stack — but noting it since it's what prompted the
reboot that exposed the bug.
The crash (3x, identical stack trace)
Process NNNN (Hyprland) of user 962 dumped core.
Stack trace:
#0 Aquamarine::CDRMBackend::flushAsyncCommitEvents()
#1 Aquamarine::CDRMBackend::cancelAsyncOutput(Aquamarine::CDRMOutput*, bool)
#2 Aquamarine::SDRMConnector::disconnect()
#3 Aquamarine::CDRMBackend::~CDRMBackend()
#4 Hyprutils::Memory::CSharedPointer<Aquamarine::CDRMBackend>::_delete(void*)
#5 Aquamarine::CBackend::~CBackend()
#6 Hyprutils::Memory::CSharedPointer<Aquamarine::CBackend>::_delete(void*)Occurred at 16:52:47, 16:55:15, and 16:58:10 (boot id44c5f4327f214ca4a2e5b5e23ef1b2a8), each time on a fresh Hyprland instance
launched by SDDM after a login attempt. The crash is inside the DRM backend's
own teardown path (~CDRMBackend() disconnecting a connector as part of
normal cleanup) — not an unusual physical hotplug event. Between/around the
crashes, other attempts instead failed differently:
wayland-session-waitenv.service: start operation timed out. Terminating.
[email protected]: start operation timed out. Terminating.
sddm-helper-start-wayland: Wayland socket watcher timed outLogin (PAM auth) succeeded on nearly every attempt — only one incidental
mistyped-password failure in the middle of this. The repeated "had to enter
the password several times" experience was actually the session dying right
after each successful login, not auth failing.
No kernel-level DRM/connector hotplug messages were logged around any of the
three crash timestamps, suggesting the crash trigger is internal to
Hyprland's own shutdown/backend-teardown logic rather than a real electrical
disconnect on DP-4.
Recovery required a hard power-down — no clean shutdown path was reachable
with the screen blank. Last log line before the boot ends issystemd-logind: Lid opened.
The bar-position corruption (separate but related)
On the next (clean) boot, omarchy-shell logged, right at startup:
qt.qpa.wayland: There are no outputs - creating placeholder screen
Layershell screen does not correspond to a real screen. Letting the compositor pick.i.e. it started before Hyprland had any real outputs ready. As a result, it
wrote "position": "left" into ~/.config/omarchy/shell.json, overwriting
the intended "top" (still the default in/usr/share/omarchy/config/omarchy/shell.json). This isn't just a one-time
render glitch — it persisted on disk and stayed wrong across the still-runningquickshell process until manually reverted.
Suggested areas to look at
- Whatever
CDRMBackend/SDRMConnector::disconnect()is doing during
backend teardown in aquamarine 0.15.0 that can null-deref/use-after-free
in flushAsyncCommitEvents() — may be worth cross-filing with
hyprwm/aquamarine or hyprwm/Hyprland directly if this repo doesn't own
that code.
2. omarchy-shell's handling of the "no outputs yet" startup race — it
should not persist a bar-position value derived from the placeholder
screen assignment back into the user's real config file.
Reproduction
Not reliably reproducible on demand (root cause of the first startup
failure that led into the crash loop isn't fully isolated) - occurred once
so far, triggered by a normal reboot after a DKMS package install. Happy to
gather more logs if it recurs; full journalctl -b <id> for the affected
boot is available on request while it's still in the journal.
View raw text
### System details Omarchy 4.0.3-1 - See additional details in Description ### What's wrong? # Hyprland/Aquamarine crash-loop on boot, plus bar position corrupted to "left" ## Summary After a routine package install + reboot, Hyprland repeatedly crashed on startup (3 coredumps in ~10 minutes, identical stack trace each time), leaving the screen blank/unusable through 5 login attempts. Only a hard power-down recovered it. On the subsequent clean boot, the top bar (`omarchy-shell`) came up anchored to the **left** edge instead of **top**, because it started before any display outputs were available and wrote that bad state to the user's live config (`~/.config/omarchy/shell.json`), not just a runtime placeholder. ## Environment - Omarchy 4.0.3-1 - Hyprland 0.56.2-2 (`efb50993780079460b0cbed1363e2166a2de1d9f`, tag v0.56.2) - aquamarine 0.15.0-2 - quickshell 0.3.1-1 - Linux 7.2.3-arch1-3 - Hardware: MSI Vector 17 HX A14VHG, hybrid graphics (Intel Raptor Lake iGPU + NVIDIA RTX 4080 Max-Q). External monitor connected via a Plugable USB4-HUB3A dock (DisplayPort Alt-Mode tunneled over Thunderbolt to the Intel iGPU, appears as `DP-4`). Internal panel is `eDP-2`. ## What triggered the reboot Installing `xpadneo-dkms` 0.10.4-1.1 (unrelated Xbox/Bluetooth controller driver) pulled in `linux-headers`, rebuilt the DKMS module and the UKI, and the machine was rebooted afterward as prompted. The controller driver itself is almost certainly incidental — the failure that followed is entirely in the display/compositor stack — but noting it since it's what prompted the reboot that exposed the bug. ## The crash (3x, identical stack trace) ``` Process NNNN (Hyprland) of user 962 dumped core. Stack trace: #0 Aquamarine::CDRMBackend::flushAsyncCommitEvents() #1 Aquamarine::CDRMBackend::cancelAsyncOutput(Aquamarine::CDRMOutput*, bool) #2 Aquamarine::SDRMConnector::disconnect() #3 Aquamarine::CDRMBackend::~CDRMBackend() #4 Hyprutils::Memory::CSharedPointer<Aquamarine::CDRMBackend>::_delete(void*) #5 Aquamarine::CBackend::~CBackend() #6 Hyprutils::Memory::CSharedPointer<Aquamarine::CBackend>::_delete(void*) ``` Occurred at 16:52:47, 16:55:15, and 16:58:10 (boot id `44c5f4327f214ca4a2e5b5e23ef1b2a8`), each time on a fresh Hyprland instance launched by SDDM after a login attempt. The crash is inside the DRM backend's own teardown path (`~CDRMBackend()` disconnecting a connector as part of normal cleanup) — not an unusual physical hotplug event. Between/around the crashes, other attempts instead failed differently: ``` wayland-session-waitenv.service: start operation timed out. Terminating. [email protected]: start operation timed out. Terminating. sddm-helper-start-wayland: Wayland socket watcher timed out ``` Login (PAM auth) succeeded on nearly every attempt — only one incidental mistyped-password failure in the middle of this. The repeated "had to enter the password several times" experience was actually the session dying right after each successful login, not auth failing. No kernel-level DRM/connector hotplug messages were logged around any of the three crash timestamps, suggesting the crash trigger is internal to Hyprland's own shutdown/backend-teardown logic rather than a real electrical disconnect on `DP-4`. Recovery required a hard power-down — no clean shutdown path was reachable with the screen blank. Last log line before the boot ends is `systemd-logind: Lid opened.` ## The bar-position corruption (separate but related) On the next (clean) boot, `omarchy-shell` logged, right at startup: ``` qt.qpa.wayland: There are no outputs - creating placeholder screen Layershell screen does not correspond to a real screen. Letting the compositor pick. ``` i.e. it started before Hyprland had any real outputs ready. As a result, it wrote `"position": "left"` into `~/.config/omarchy/shell.json`, overwriting the intended `"top"` (still the default in `/usr/share/omarchy/config/omarchy/shell.json`). This isn't just a one-time render glitch — it persisted on disk and stayed wrong across the still-running `quickshell` process until manually reverted. ## Suggested areas to look at 1. Whatever `CDRMBackend`/`SDRMConnector::disconnect()` is doing during backend teardown in aquamarine 0.15.0 that can null-deref/use-after-free in `flushAsyncCommitEvents()` — may be worth cross-filing with hyprwm/aquamarine or hyprwm/Hyprland directly if this repo doesn't own that code. 2. `omarchy-shell`'s handling of the "no outputs yet" startup race — it should not persist a bar-position value derived from the placeholder screen assignment back into the user's real config file. ## Reproduction Not reliably reproducible on demand (root cause of the *first* startup failure that led into the crash loop isn't fully isolated) - occurred once so far, triggered by a normal reboot after a DKMS package install. Happy to gather more logs if it recurs; full `journalctl -b <id>` for the affected boot is available on request while it's still in the journal.
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 13:32 UTC