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

LG display stays off after wake: dpmsStatus desyncs true while panel has no signal, skip-optimization prevents recovery

Reported by SykesTheLord · filed Sep 16, 2026Closed upstream. GitHub close reason: deleted.

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

LG display stays off after wake: dpmsStatus desyncs true while panel has no signal, skip-optimization prevents recoveryrevision 1 · captured 2026-09-28 21:23 UTC via poll

What happened

An external LG display (DP-7, "LG Electronics LG HDR 4K") stayed physically off / reported "no signal" after the idle-wake flow ran, even though hyprctl monitors continued to report dpmsStatus: true for it. Waking the system via mouse/keyboard did not restore the signal. All other connected monitors (eDP internal panel, a ViewSonic, and a Microstep OLED) woke normally.

What was expected

All monitors should light back up when the system wakes from idle.

Root cause (traced this session)

omarchy-system-wake calls omarchy-brightness-display on, which contains this optimization in /usr/share/omarchy/bin/omarchy-brightness-display:

elif [[ $step == "on" ]]; then
  # Skip the dispatch when every active display is already lit: a redundant
  # DPMS enable right after system resume forces another modeset, which blanks
  # the panel for a beat (visible flash at the unlock screen).
  hyprctl monitors -j 2>/dev/null | jq -e '[.[] | select(.disabled == false)] | length > 0 and all(.dpmsStatus)' >/dev/null 2>&1 && exit 0
  hyprctl dispatch 'hl.dsp.dpms({ action = "enable" })' >/dev/null 2>&1
  exit 0
fi

If Hyprland's own dpmsStatus for a given monitor becomes desynced from its actual hardware power state (i.e. Hyprland believes it's already on, dpmsStatus: true, while the panel is physically dark/no-signal), this check passes for all monitors and the script exits before ever sending the enable dispatch. The affected monitor is then permanently skipped on every subsequent wake, since the check keeps finding "everything already claims to be on."

In this session's hyprland.log, the DP-7 connector shows repeated:

ERR from aquamarine ]: atomic drm request: failed to commit: Invalid argument, flags:

around modeset/DPMS transitions. A failed atomic KMS commit appears able to leave Hyprland's internal enabledState/dpmsStatus believing a transition succeeded when the actual commit was rejected by the kernel — which is a plausible way dpmsStatus gets stuck true while the panel is dark.

Confirmed fix / workaround

Manually forcing a real state transition (not a no-op "enable" while state is already true) restored the display immediately:

hyprctl dispatch 'hl.dsp.dpms({ action = "disable" })'
hyprctl dispatch 'hl.dsp.dpms({ action = "enable" })'

This bypasses the skip-optimization entirely and forces Hyprland to recommit the mode, which brought the LG panel back with a valid signal.

Suggested fix

The skip-optimization in omarchy-brightness-display has no fallback for the case where Hyprland's dpmsStatus is desynced from actual monitor state. Possible options:
- Don't rely solely on dpmsStatus to decide whether to skip; also check something reflecting the actual DRM connector state per monitor.
- Add a periodic/occasional real state cycle even when dpmsStatus is already true, to self-correct desyncs.
- At minimum, since this leaves a monitor permanently stuck until a manual disable/enable cycle or full session restart, consider surfacing this state (or an easy recovery command) to the user.

System details

  • omarchy version: 4.0.4-1 (rc channel)
  • hyprctl version: Hyprland 0.56.2, commit efb50993780079460b0cbed1363e2166a2de1d9f, built Aug 5 2026
  • CPU: Intel Core Ultra 9 275HX
  • GPU: hybrid — Intel Arrow Lake-S iGPU (i915/xe) + NVIDIA GeForce RTX 5070 Max-Q (nvidia)
  • 4 monitors active: internal eDP, ViewSonic VX3276-QHD, Microstep MAG321UP OLED, LG HDR 4K (affected, DP-7)

Note: omarchy debug --no-sudo --print (referenced in the skill docs / older instructions) does not exist as a command on this omarchy version — omarchy commands --all has no debug entry, so I couldn't attach the standard diagnostic bundle. Happy to provide additional logs on request.

Steps to reproduce

  1. Have multiple monitors attached including an LG display, with a hybrid-GPU laptop.
  2. Let the system idle long enough for omarchy-system-lock/DPMS-off to trigger, or otherwise reach a state where an atomic DRM commit failure occurs around a monitor's modeset (logged as atomic drm request: failed to commit: Invalid argument in hyprland.log).
  3. Wake the system.
  4. Observe: some monitors wake, but one (in our case the LG display) stays off / no signal, while hyprctl monitors -j still reports dpmsStatus: true for it.
  5. hyprctl dispatch 'hl.dsp.dpms({ action = "disable" })' then 'hl.dsp.dpms({ action = "enable" })' recovers it; a plain enable dispatch alone does not (no-op since state is already "true").
View raw text
## What happened

An external LG display (DP-7, "LG Electronics LG HDR 4K") stayed physically off / reported "no signal" after the idle-wake flow ran, even though `hyprctl monitors` continued to report `dpmsStatus: true` for it. Waking the system via mouse/keyboard did not restore the signal. All other connected monitors (eDP internal panel, a ViewSonic, and a Microstep OLED) woke normally.

## What was expected

All monitors should light back up when the system wakes from idle.

## Root cause (traced this session)

`omarchy-system-wake` calls `omarchy-brightness-display on`, which contains this optimization in `/usr/share/omarchy/bin/omarchy-brightness-display`:

```bash
elif [[ $step == "on" ]]; then
  # Skip the dispatch when every active display is already lit: a redundant
  # DPMS enable right after system resume forces another modeset, which blanks
  # the panel for a beat (visible flash at the unlock screen).
  hyprctl monitors -j 2>/dev/null | jq -e '[.[] | select(.disabled == false)] | length > 0 and all(.dpmsStatus)' >/dev/null 2>&1 && exit 0
  hyprctl dispatch 'hl.dsp.dpms({ action = "enable" })' >/dev/null 2>&1
  exit 0
fi
```

If Hyprland's own `dpmsStatus` for a given monitor becomes desynced from its actual hardware power state (i.e. Hyprland believes it's already on, `dpmsStatus: true`, while the panel is physically dark/no-signal), this check passes for *all* monitors and the script exits before ever sending the enable dispatch. The affected monitor is then permanently skipped on every subsequent wake, since the check keeps finding "everything already claims to be on."

In this session's `hyprland.log`, the DP-7 connector shows repeated:

```
ERR from aquamarine ]: atomic drm request: failed to commit: Invalid argument, flags:
```

around modeset/DPMS transitions. A failed atomic KMS commit appears able to leave Hyprland's internal `enabledState`/`dpmsStatus` believing a transition succeeded when the actual commit was rejected by the kernel — which is a plausible way `dpmsStatus` gets stuck `true` while the panel is dark.

## Confirmed fix / workaround

Manually forcing a real state transition (not a no-op "enable" while state is already `true`) restored the display immediately:

```bash
hyprctl dispatch 'hl.dsp.dpms({ action = "disable" })'
hyprctl dispatch 'hl.dsp.dpms({ action = "enable" })'
```

This bypasses the skip-optimization entirely and forces Hyprland to recommit the mode, which brought the LG panel back with a valid signal.

## Suggested fix

The skip-optimization in `omarchy-brightness-display` has no fallback for the case where Hyprland's `dpmsStatus` is desynced from actual monitor state. Possible options:
- Don't rely solely on `dpmsStatus` to decide whether to skip; also check something reflecting the actual DRM connector state per monitor.
- Add a periodic/occasional real state cycle even when `dpmsStatus` is already true, to self-correct desyncs.
- At minimum, since this leaves a monitor permanently stuck until a manual disable/enable cycle or full session restart, consider surfacing this state (or an easy recovery command) to the user.

## System details

- `omarchy version`: 4.0.4-1 (rc channel)
- `hyprctl version`: Hyprland 0.56.2, commit `efb50993780079460b0cbed1363e2166a2de1d9f`, built Aug 5 2026
- CPU: Intel Core Ultra 9 275HX
- GPU: hybrid — Intel Arrow Lake-S iGPU (i915/xe) + NVIDIA GeForce RTX 5070 Max-Q (nvidia)
- 4 monitors active: internal eDP, ViewSonic VX3276-QHD, Microstep MAG321UP OLED, LG HDR 4K (affected, DP-7)

Note: `omarchy debug --no-sudo --print` (referenced in the skill docs / older instructions) does not exist as a command on this `omarchy` version — `omarchy commands --all` has no `debug` entry, so I couldn't attach the standard diagnostic bundle. Happy to provide additional logs on request.

## Steps to reproduce

1. Have multiple monitors attached including an LG display, with a hybrid-GPU laptop.
2. Let the system idle long enough for `omarchy-system-lock`/DPMS-off to trigger, or otherwise reach a state where an atomic DRM commit failure occurs around a monitor's modeset (logged as `atomic drm request: failed to commit: Invalid argument` in `hyprland.log`).
3. Wake the system.
4. Observe: some monitors wake, but one (in our case the LG display) stays off / no signal, while `hyprctl monitors -j` still reports `dpmsStatus: true` for it.
5. `hyprctl dispatch 'hl.dsp.dpms({ action = "disable" })'` then `'hl.dsp.dpms({ action = "enable" })'` recovers it; a plain `enable` dispatch alone does not (no-op since state is already "true").

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 14:21 UTC