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

Resume from suspend with lid closed on Thunderbolt Studio Displays: ~1 min unresponsive wake, session restart, second display wedged at mode 0x0

Reported by wanghailei · filed Oct 4, 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 suspend with lid closed on Thunderbolt Studio Displays: ~1 min unresponsive wake, session restart, second display wedged at mode 0x0revision 1 · captured 2026-10-04 13:09 UTC via poll

Summary

On a ThinkPad P1 Gen 8 docked to two Apple Studio Displays over Thunderbolt, suspend/resume with the lid closed produced: (a) an unresponsive wake lasting ~1 minute (no reaction to keyboard until the lid was opened), during which the Hyprland session restarted, and (b) the second Studio Display wedged in a state where Hyprland lists it as connected and enabled but with mode 0x0 — black screen — from which no runtime recovery succeeds.

Expected

Resume from suspend restores the session promptly and both external displays return to their configured modes.

Actual

  1. Wake was unresponsive with the lid closed; after opening the lid and waiting about a minute, the lock screen's password UI appeared. The journal shows the GPU re-initialising (i915 GuC firmware reload) and a fresh Hyprland start (new instance's xkbcomp warnings) at resume time, i.e. the compositor/session restarted around resume.
  2. After unlocking, the second Studio Display stayed black. hyprctl monitors shows it enabled but with no mode:
Monitor DP-4 (ID 2):
	[email protected] at 2560x0
	description: Apple Computer Inc Studio XDR 0x9ED85B95

The first display (DP-2) came up normally at 5120x2880@60.

Timeline (journal, this boot)

  • 19:10:55 — brief suspend entry/exit (PM: suspend entry (s2idle) … PM: suspend exit, 5 s wall)
  • 19:11:21 — suspend again (s2idle) — the long sleep
  • 19:14:16 — resume: i915 ... GuC firmware i915/mtl_guc_70.bin reload, GT0/GT1 re-init
  • 19:14:30 — new Hyprland instance logs xkbcomp warnings (session restart)
  • 19:17:59 — replugging the Thunderbolt cable: pciehp re-enumeration plus:
i915 0000:00:02.0: [drm] drm_WARN_ON(!(intel_dp->psr.sink_support && intel_dp->psr.source_support) && ...)
WARNING: drivers/gpu/drm/i915/display/intel_psr.c:2465 at intel_psr_disable [i915]
Workqueue: display_unordered intel_encoder_link_check_work_fn [i915]
Call Trace: intel_ddi_disable+0x146/0x280 [i915] ...

Recovery attempts (all failed while the session was live)

  • hyprctl eval 'hl.monitor({ output = "DP-4", mode = "preferred", position = "auto", scale = 2 })' → ok, no change
  • Same with explicit mode = "5120x2880@60" → ok, no change
  • Disable/re-enable cycle via hl.monitor({ output = "DP-4", disabled = true/false }) → accepted, state never changes
  • hyprctl reload → ok, no config errors, no change
  • Physically replugging the Thunderbolt cable several times → Thunderbolt re-enumerates (pciehp slots), the PSR WARN above fires once, display never recovers

Throughout all of this the connector's EDID remains valid (/sys/class/drm/card0-DP-4/edid decodes to serial 0x9ED85B95), so the panel and cable are healthy; the output is wedged below or inside the compositor's bookkeeping.

System details

  • Omarchy 4.0.4-1
  • Kernel 7.2.3-arch1-3 (x86_64)
  • Hyprland 0.56.2, SDDM, UWSM
  • ThinkPad P1 Gen 8 (21Q8A007CD), Intel Core Ultra 9 285H (Arrow Lake), i915 (mtl_guc_70 firmware); NVIDIA dGPU present (nvidia_drm loaded)
  • 2× Apple Studio Display (5120×2880) via Thunderbolt, lid closed (eDP-1 disabled)
  • Monitor config: generic rule — preferred mode, auto position, scale 2 (~/.config/hypr/monitors.lua)

Full omarchy-debug --no-sudo --print output available on request (2086 lines).

View raw text
## Summary

On a ThinkPad P1 Gen 8 docked to two Apple Studio Displays over Thunderbolt, suspend/resume with the lid closed produced: (a) an unresponsive wake lasting ~1 minute (no reaction to keyboard until the lid was opened), during which the Hyprland session restarted, and (b) the second Studio Display wedged in a state where Hyprland lists it as connected and enabled but with mode `0x0` — black screen — from which no runtime recovery succeeds.

## Expected

Resume from suspend restores the session promptly and both external displays return to their configured modes.

## Actual

1. Wake was unresponsive with the lid closed; after opening the lid and waiting about a minute, the lock screen's password UI appeared. The journal shows the GPU re-initialising (`i915 GuC firmware reload`) and a fresh Hyprland start (new instance's xkbcomp warnings) at resume time, i.e. the compositor/session restarted around resume.
2. After unlocking, the second Studio Display stayed black. `hyprctl monitors` shows it enabled but with no mode:

```
Monitor DP-4 (ID 2):
	[email protected] at 2560x0
	description: Apple Computer Inc Studio XDR 0x9ED85B95
```

The first display (DP-2) came up normally at 5120x2880@60.

## Timeline (journal, this boot)

- 19:10:55 — brief suspend entry/exit (`PM: suspend entry (s2idle)` … `PM: suspend exit`, 5 s wall)
- 19:11:21 — suspend again (s2idle) — the long sleep
- 19:14:16 — resume: `i915 ... GuC firmware i915/mtl_guc_70.bin` reload, GT0/GT1 re-init
- 19:14:30 — new Hyprland instance logs xkbcomp warnings (session restart)
- 19:17:59 — replugging the Thunderbolt cable: pciehp re-enumeration plus:

```
i915 0000:00:02.0: [drm] drm_WARN_ON(!(intel_dp->psr.sink_support && intel_dp->psr.source_support) && ...)
WARNING: drivers/gpu/drm/i915/display/intel_psr.c:2465 at intel_psr_disable [i915]
Workqueue: display_unordered intel_encoder_link_check_work_fn [i915]
Call Trace: intel_ddi_disable+0x146/0x280 [i915] ...
```

## Recovery attempts (all failed while the session was live)

- `hyprctl eval 'hl.monitor({ output = "DP-4", mode = "preferred", position = "auto", scale = 2 })'` → `ok`, no change
- Same with explicit `mode = "5120x2880@60"` → `ok`, no change
- Disable/re-enable cycle via `hl.monitor({ output = "DP-4", disabled = true/false })` → accepted, state never changes
- `hyprctl reload` → `ok`, no config errors, no change
- Physically replugging the Thunderbolt cable several times → Thunderbolt re-enumerates (pciehp slots), the PSR WARN above fires once, display never recovers

Throughout all of this the connector's EDID remains valid (`/sys/class/drm/card0-DP-4/edid` decodes to serial `0x9ED85B95`), so the panel and cable are healthy; the output is wedged below or inside the compositor's bookkeeping.

## System details

- Omarchy 4.0.4-1
- Kernel 7.2.3-arch1-3 (x86_64)
- Hyprland 0.56.2, SDDM, UWSM
- ThinkPad P1 Gen 8 (21Q8A007CD), Intel Core Ultra 9 285H (Arrow Lake), i915 (`mtl_guc_70` firmware); NVIDIA dGPU present (nvidia_drm loaded)
- 2× Apple Studio Display (5120×2880) via Thunderbolt, lid closed (eDP-1 disabled)
- Monitor config: generic rule — preferred mode, auto position, scale 2 (`~/.config/hypr/monitors.lua`)

Full `omarchy-debug --no-sudo --print` output available on request (2086 lines).

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