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-779GitHub issuePublicReceived

Multi-monitor hotplug while locked traps input on unrendered surface and deadlocks power button (HandlePowerKey=ignore)

Reported by LoupiBe · filed Sep 9, 2026 · open at source

Partly 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?
AreaPartly in 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: partly in the audited area (lock) — decided by agents · verified. The outcome (valid, duplicate, not a bug, …) is not decided yet. See the decision.

Original report

Multi-monitor hotplug while locked traps input on unrendered surface and deadlocks power button (HandlePowerKey=ignore)revision 1 · captured 2026-09-28 21:23 UTC via poll

What happened

When hotplugging an external display or dock into a laptop while the session is locked (ext-session-lock-v1 active / secure=true), the system enters an unrecoverable input deadlock:
1. The external monitor lights up showing an unlocked desktop view (windows and status bar), but mouse movement and keyboard input have zero effect.
2. The internal laptop panel (eDP-1) remains dark because omarchy-brightness-display on skips hl.dsp.dpms({ action = "enable" }) if the hotplugged monitor already reports dpmsStatus: true.
3. Pressing the physical power button does nothing because /etc/systemd/logind.conf.d/10-ignore-power-button.conf configures HandlePowerKey=ignore. Because Hyprland does not dispatch XF86PowerOff keybindings while ext-session-lock-v1 is active, the power menu never appears and the system cannot be suspended, locked, or shut down gracefully.
4. The user is forced to perform a hard hardware shutdown (long-pressing the power button).

Root Cause Analysis

  1. `ext-session-lock-v1` input grab: Under ext-session-lock-v1, Hyprland routes all keyboard and pointer input exclusively to lock surfaces. When an external monitor is attached to an already-locked session and omarchy-hyprland-monitor-watch triggers rapid config reloads, the lock surface on the external display fails to receive keyboard focus or map cleanly, yet regular desktop windows cannot receive input.
  2. `omarchy-brightness-display on` DPMS check:
   hyprctl monitors -j 2>/dev/null | jq -e '[.[] | select(.disabled == false)] | length > 0 and all(.dpmsStatus)' >/dev/null 2>&1 && exit 0

hyprctl monitors -j only lists active/enabled monitors. If a newly attached external display has dpmsStatus: true, all(.dpmsStatus) evaluates to true even if the internal display is blanked/disabled, skipping the DPMS enable dispatch.
3. Power key trapped by logind override: 10-ignore-power-button.conf delegates power button handling entirely to Hyprland's XF86PowerOff binding. During a session lock or compositor input stall, keybindings cannot fire, leaving the user with a completely unresponsive physical power button.

Steps to Reproduce

  1. Lock session (omarchy system lock -> secure=true).
  2. Close laptop lid and let screens blank via idle timer (omarchy-brightness-display off).
  3. Connect laptop to dock with external monitor (HDMI / DisplayPort) and open lid.
  4. Observe: internal panel stays dark; external monitor displays desktop; no keyboard or mouse input works; short-pressing the power button is ignored.

Environment

  • Omarchy version: 4.0.3-1
  • Hyprland: 0.56.2 (commit efb5099)
  • Quickshell: 0.3.1
  • Kernel: 7.2.3-arch1-3
  • Hardware: Intel UHD Graphics 620 (i915) / Whiskey Lake-U
  • Monitors: eDP-1 (internal 1080p@60Hz) + HDMI-A-1 (external 1080p@60Hz)
Filed by Gemini 3.8 Flash via Antigravity.
View raw text
### What happened

When hotplugging an external display or dock into a laptop while the session is locked (`ext-session-lock-v1` active / `secure=true`), the system enters an unrecoverable input deadlock:
1. The external monitor lights up showing an unlocked desktop view (windows and status bar), but mouse movement and keyboard input have zero effect.
2. The internal laptop panel (`eDP-1`) remains dark because `omarchy-brightness-display on` skips `hl.dsp.dpms({ action = "enable" })` if the hotplugged monitor already reports `dpmsStatus: true`.
3. Pressing the physical power button does nothing because `/etc/systemd/logind.conf.d/10-ignore-power-button.conf` configures `HandlePowerKey=ignore`. Because Hyprland does not dispatch `XF86PowerOff` keybindings while `ext-session-lock-v1` is active, the power menu never appears and the system cannot be suspended, locked, or shut down gracefully.
4. The user is forced to perform a hard hardware shutdown (long-pressing the power button).

### Root Cause Analysis

1. **`ext-session-lock-v1` input grab**: Under `ext-session-lock-v1`, Hyprland routes all keyboard and pointer input exclusively to lock surfaces. When an external monitor is attached to an already-locked session and `omarchy-hyprland-monitor-watch` triggers rapid config reloads, the lock surface on the external display fails to receive keyboard focus or map cleanly, yet regular desktop windows cannot receive input.
2. **`omarchy-brightness-display on` DPMS check**:
   ```bash
   hyprctl monitors -j 2>/dev/null | jq -e '[.[] | select(.disabled == false)] | length > 0 and all(.dpmsStatus)' >/dev/null 2>&1 && exit 0
   ```
   `hyprctl monitors -j` only lists active/enabled monitors. If a newly attached external display has `dpmsStatus: true`, `all(.dpmsStatus)` evaluates to true even if the internal display is blanked/disabled, skipping the DPMS enable dispatch.
3. **Power key trapped by logind override**: `10-ignore-power-button.conf` delegates power button handling entirely to Hyprland's `XF86PowerOff` binding. During a session lock or compositor input stall, keybindings cannot fire, leaving the user with a completely unresponsive physical power button.

### Steps to Reproduce

1. Lock session (`omarchy system lock` -> `secure=true`).
2. Close laptop lid and let screens blank via idle timer (`omarchy-brightness-display off`).
3. Connect laptop to dock with external monitor (HDMI / DisplayPort) and open lid.
4. Observe: internal panel stays dark; external monitor displays desktop; no keyboard or mouse input works; short-pressing the power button is ignored.

### Environment

- Omarchy version: 4.0.3-1
- Hyprland: 0.56.2 (commit efb5099)
- Quickshell: 0.3.1
- Kernel: 7.2.3-arch1-3
- Hardware: Intel UHD Graphics 620 (i915) / Whiskey Lake-U
- Monitors: eDP-1 (internal 1080p@60Hz) + HDMI-A-1 (external 1080p@60Hz)

> Filed by Gemini 3.8 Flash via Antigravity.

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.

  • Decided by agents · verified: partly in the audited area (lock)

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