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-323GitHub issuePublicFixed

Don't DPMS-off Apple Studio Display on lock — USB4 tunnel dies until power cycle

Reported by codeface-io · filed Sep 19, 2026 · open at source

In the audited area (lock) — decided by agents · verified. Not validated yet.

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?
AreaIn the audited arealock· 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?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. So far: in the audited area (lock) — decided by agents · verified; matches no known issue — decided by agents · verified. The outcome (valid, duplicate, not a bug, …) is not decided yet. See the decision.

Original report

Don't DPMS-off Apple Studio Display on lock — USB4 tunnel dies until power cyclerevision 1 · captured 2026-09-28 21:23 UTC via poll

System details

  • Omarchy: 4.0.4-1
  • Kernel: linux-omarchy 7.2.5-3
  • Machine: Beelink SER9 (AZW SER9)
  • CPU / GPU: AMD Ryzen 7 255, Radeon 780M (amdgpu)
  • Display: Apple Studio Display over USB4 (Hyprland DP-5, 5120×2880). This is a USB4 DisplayPort tunnel, not HDMI or a dumb DP cable.

What's wrong?

In one sentence: locking the machine turns the display connector off, which on an Apple Studio Display over USB4 drops the video tunnel so the panel stays black until you power-cycle the display (or the PC).

This is not “the lock screen is ugly.” After lock, the picture often does not come back with a keypress. amdgpu logs DPIA AUX failed. Recovery is a power cycle, not unlocking.

What Omarchy does today

  1. You lock (Super+Ctrl+L, or idle lock).
  2. The lock plugin waits 5 seconds, then blanks the screens (idleBlankTimer in shell/plugins/lock/Service.qml).
  3. Blanking runs omarchy-brightness-display off.
  4. That command always does:
   hyprctl dispatch 'hl.dsp.dpms({ action = "disable" })'

It does not check whether the output is an Apple USB4 display.

  1. Brightness up/down already special-cases Apple panels (omarchy-hyprland-monitor-focused-apple → omarchy-brightness-display-apple). So Omarchy already knows this is a Studio Display — and still blanks it in the way that kills the USB4 tunnel.

On this APU there is no S3. Power-menu Suspend is s2idle and dies the same way. That can be a follow-up. The everyday path is lock.

Suggested change

Do not DPMS-disable the connector on Apple Studio Display / Pro Display XDR when locking.

Leave the modeset up. Dim to 0, or cover the picture with the lock surface. The on path already avoids a redundant DPMS enable because it forces a modeset — the same caution belongs on off for these panels.

Who benefits

Anyone whose main screen is an Apple Studio Display or Pro Display XDR over USB4/Thunderbolt. Locking the session should not be a hardware event. HDMI / normal DP users are unaffected if the skip is gated on the existing Apple-display helper.

Scope (small, Omarchy-owned)

  • bin/omarchy-brightness-display: off / on should not DPMS-disable an Apple USB4 panel (reuse omarchy-hyprland-monitor-focused-apple, or apply per monitor).
  • and/or shell/plugins/lock/Service.qml: don’t call omarchy-brightness-display off for those outputs.

Out of scope: rewriting amdgpu, Beelink BIOS, “never sleep / keep the PC fully on,” session restore.

Steps to reproduce

  1. Apple Studio Display as the (only) output over USB4.
  2. Super+Ctrl+L, wait ~10 seconds (lock blanks at 5s).
  3. Press a key or move the mouse.
  4. Panel stays black. After you get a picture again:
   journalctl -b | grep -iE 'DPIA AUX|amdgpu'

Related (different bugs)

  • #7388 — Studio Display over USB4 dropping because stock preferred picks 5K@120; not lock DPMS.
  • #7805 — password field fills with key-repeat after DPMS wake; assumes the panel does come back.

Happy to test a patch on this SER9 + Studio Display setup.

View raw text
### System details

- **Omarchy:** 4.0.4-1
- **Kernel:** linux-omarchy 7.2.5-3
- **Machine:** Beelink SER9 (AZW SER9)
- **CPU / GPU:** AMD Ryzen 7 255, Radeon 780M (`amdgpu`)
- **Display:** Apple Studio Display over **USB4** (Hyprland `DP-5`, 5120×2880). This is a USB4 DisplayPort tunnel, not HDMI or a dumb DP cable.

### What's wrong?

**In one sentence:** locking the machine turns the display connector off, which on an Apple Studio Display over USB4 drops the video tunnel so the panel stays black until you power-cycle the display (or the PC).

This is not “the lock screen is ugly.” After lock, the picture often does not come back with a keypress. `amdgpu` logs `DPIA AUX failed`. Recovery is a power cycle, not unlocking.

**What Omarchy does today**

1. You lock (Super+Ctrl+L, or idle lock).
2. The lock plugin waits **5 seconds**, then blanks the screens (`idleBlankTimer` in `shell/plugins/lock/Service.qml`).
3. Blanking runs `omarchy-brightness-display off`.
4. That command **always** does:

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

   It does not check whether the output is an Apple USB4 display.

5. Brightness up/down **already** special-cases Apple panels (`omarchy-hyprland-monitor-focused-apple` → `omarchy-brightness-display-apple`). So Omarchy already knows this is a Studio Display — and still blanks it in the way that kills the USB4 tunnel.

On this APU there is no S3. Power-menu **Suspend** is s2idle and dies the same way. That can be a follow-up. The everyday path is lock.

**Suggested change**

Do **not** DPMS-disable the connector on Apple Studio Display / Pro Display XDR when locking.

Leave the modeset up. Dim to 0, or cover the picture with the lock surface. The `on` path already avoids a redundant DPMS enable because it forces a modeset — the same caution belongs on `off` for these panels.

**Who benefits**

Anyone whose main screen is an Apple Studio Display or Pro Display XDR over USB4/Thunderbolt. Locking the session should not be a hardware event. HDMI / normal DP users are unaffected if the skip is gated on the existing Apple-display helper.

**Scope (small, Omarchy-owned)**

- `bin/omarchy-brightness-display`: `off` / `on` should not DPMS-disable an Apple USB4 panel (reuse `omarchy-hyprland-monitor-focused-apple`, or apply per monitor).
- and/or `shell/plugins/lock/Service.qml`: don’t call `omarchy-brightness-display off` for those outputs.

Out of scope: rewriting `amdgpu`, Beelink BIOS, “never sleep / keep the PC fully on,” session restore.

**Steps to reproduce**

1. Apple Studio Display as the (only) output over USB4.
2. Super+Ctrl+L, wait ~10 seconds (lock blanks at 5s).
3. Press a key or move the mouse.
4. Panel stays black. After you get a picture again:

   ```bash
   journalctl -b | grep -iE 'DPIA AUX|amdgpu'
   ```

**Related (different bugs)**

- #7388 — Studio Display over USB4 dropping because stock `preferred` picks 5K@120; not lock DPMS.
- #7805 — password field fills with key-repeat after DPMS wake; assumes the panel *does* come back.

Happy to test a patch on this SER9 + Studio Display setup.

Also reported as

This defect is tracked under R-323 (filed Sep 19, 2026). 4 other reports describe the same defect.

Earliest report of this defect: R-921 (filed Sep 5, 2026).

  1. Sep 19, 2026R-323 · this report— tracked here
  2. ·Decided by agents · verified

    Open upstream.

  3. ·Decided by agents · verified

    Open upstream.

  4. ·Decided by agents · verified

    Open upstream.

  5. ·Decided by agents · verified

    Open upstream.

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

  • Fixed bypr/6642· confirmed
  • Related PRpr/11072· confirmed

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.

  • Decided by agents · verified: in the audited area (lock)
  • Decided by agents · verified: matches no known issue

The outcome (valid, duplicate, not a bug, …) is not decided yet.