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

Resume from sleep leaves panel dark on Lenovo LOQ 15ARP9 (NVIDIA dGPU-only, s2idle): stale dpmsStatus skips DPMS enable

Reported by adhimiw · filed Sep 25, 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

Resume from sleep leaves panel dark on Lenovo LOQ 15ARP9 (NVIDIA dGPU-only, s2idle): stale dpmsStatus skips DPMS enablerevision 1 · captured 2026-09-28 21:23 UTC via poll

Resume from sleep leaves panel dark on Lenovo LOQ 15ARP9 (NVIDIA dGPU-only, s2idle)

Hardware: Lenovo LOQ 15ARP9 (83JC), RTX 4050 Max-Q Mobile, no iGPU (dGPU-only), BIOS PQCN31WW, mem_sleep: [s2idle] only
Software: Omarchy 4.0.4-1, linux-omarchy 7.2.5-3, nvidia-open-dkms 610.57.04, Hyprland (Quickshell)

Symptom

Clicking Sleep (or systemctl suspend) suspends fine (PM: suspend entry (s2idle)), but on wake the internal panel stays black. Fans/keyboard come on, system is alive (SSH works), only the display never re-lights. Hard reboot required. Same class of failure as #4200 / #2635, and the same hardware as CachyOS/linux-cachyos#493 and NVIDIA/open-gpu-kernel-modules#1136.

Root cause

omarchy-system-wake relies on omarchy-brightness-display on to re-enable the panel, but that command skips the DPMS enable dispatch when Hyprland already reports dpmsStatus=true:

# bin/omarchy-brightness-display
hyprctl monitors -j | jq -e '[.[] | select(.disabled == false)] | length > 0 and all(.dpmsStatus)' && exit 0
hyprctl dispatch 'hl.dsp.dpms({ action = "enable" })'

After s2idle resume on this NVIDIA setup the reported dpmsStatus is stale (true while the panel is physically dark), so the enable is skipped and nothing ever re-lights the eDP panel. NVIDIA driver state is otherwise healthy (PreserveVideoMemoryAllocations=1, EnableS0ixPowerManagement=1, S0ix Status: Enabled, nvidia-resume.service finishes OK).

Local workaround (verified)

Force the DPMS enable in the resume path instead of trusting the guard — patched ~/.local/bin/omarchy-resume-wake-listener so on PrepareForSleep(false) it runs:

sleep 1
for _ in 1 2 3; do
  hyprctl dispatch 'hl.dsp.dpms({ action = "enable" })' >/dev/null 2>&1 || true
  sleep 1
done
omarchy-system-wake >/dev/null 2>&1 || true

Suggested upstream fix

Give the resume path a way to bypass the already-lit guard, e.g.:

  • add a --force flag to omarchy-brightness-display on that skips the jq … all(.dpmsStatus) early-exit, and
  • call it (or the raw hl.dsp.dpms enable dispatch with a short retry) from omarchy-system-wake / the resume listener.

The guard itself is still valuable for the keystroke path (avoids the unlock-screen flash noted in omarchy-mac@54d79d9) — it just must not gate the actual resume path on s2idle+NVIDIA hardware where the status is stale.

Happy to turn this into a PR against quattro if maintainers agree with the --force approach.

View raw text
## Resume from sleep leaves panel dark on Lenovo LOQ 15ARP9 (NVIDIA dGPU-only, s2idle)

**Hardware:** Lenovo LOQ 15ARP9 (83JC), RTX 4050 Max-Q Mobile, no iGPU (dGPU-only), BIOS PQCN31WW, `mem_sleep: [s2idle]` only
**Software:** Omarchy 4.0.4-1, `linux-omarchy 7.2.5-3`, `nvidia-open-dkms 610.57.04`, Hyprland (Quickshell)

### Symptom
Clicking Sleep (or `systemctl suspend`) suspends fine (`PM: suspend entry (s2idle)`), but on wake the internal panel stays black. Fans/keyboard come on, system is alive (SSH works), only the display never re-lights. Hard reboot required. Same class of failure as #4200 / #2635, and the same hardware as CachyOS/linux-cachyos#493 and NVIDIA/open-gpu-kernel-modules#1136.

### Root cause
`omarchy-system-wake` relies on `omarchy-brightness-display on` to re-enable the panel, but that command **skips** the DPMS enable dispatch when Hyprland already reports `dpmsStatus=true`:

```bash
# bin/omarchy-brightness-display
hyprctl monitors -j | jq -e '[.[] | select(.disabled == false)] | length > 0 and all(.dpmsStatus)' && exit 0
hyprctl dispatch 'hl.dsp.dpms({ action = "enable" })'
```

After s2idle resume on this NVIDIA setup the reported `dpmsStatus` is stale (`true` while the panel is physically dark), so the enable is skipped and nothing ever re-lights the eDP panel. NVIDIA driver state is otherwise healthy (`PreserveVideoMemoryAllocations=1`, `EnableS0ixPowerManagement=1`, S0ix Status: Enabled, `nvidia-resume.service` finishes OK).

### Local workaround (verified)
Force the DPMS enable in the resume path instead of trusting the guard — patched `~/.local/bin/omarchy-resume-wake-listener` so on `PrepareForSleep(false)` it runs:

```bash
sleep 1
for _ in 1 2 3; do
  hyprctl dispatch 'hl.dsp.dpms({ action = "enable" })' >/dev/null 2>&1 || true
  sleep 1
done
omarchy-system-wake >/dev/null 2>&1 || true
```

### Suggested upstream fix
Give the resume path a way to bypass the already-lit guard, e.g.:

- add a `--force` flag to `omarchy-brightness-display on` that skips the `jq … all(.dpmsStatus)` early-exit, and
- call it (or the raw `hl.dsp.dpms enable` dispatch with a short retry) from `omarchy-system-wake` / the resume listener.

The guard itself is still valuable for the keystroke path (avoids the unlock-screen flash noted in omarchy-mac@54d79d9) — it just must not gate the actual resume path on s2idle+NVIDIA hardware where the status is stale.

Happy to turn this into a PR against `quattro` if maintainers agree with the `--force` approach.

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 18:25 UTC