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

[Quattro] Idle screensaver-to-lock transition flashes the password prompt

Reported by ClGratton · filed Aug 30, 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

[Quattro] Idle screensaver-to-lock transition flashes the password promptrevision 1 · captured 2026-09-28 21:24 UTC via poll

System details

Omarchy 4.0.1 Quattro, Hyprland 0.56.2, Quickshell 0.3.1, NVIDIA RTX 3080 Ti, and two 2560×1440 DisplayPort outputs at 180 Hz and 200 Hz.

Problem

At the idle lock deadline, Omarchy removed the fullscreen screensaver while the native session lock was still creating surfaces. Depending on output timing, this exposed either the password view or the desktop before real DPMS standby.

Cause

omarchy-system-lock removed the terminal screensaver before ext-session-lock reported the multi-output lock secure. When composed with the compositor-side dismissal monitor from #7780, disabling that monitor at the lock deadline could also emit an active-state callback and tear the screensaver down through the input-dismiss path.

Verified solution

PR #9632 adds an idle-only concealed lock entry point. The lock surfaces paint black without loading the wallpaper or authentication field, the pointer is hidden during mapping, and synthetic pointer initialization cannot reveal the view. The idle service keeps the fullscreen screensaver mapped over the desktop until ext-session-lock reports secure, then performs the existing lock cleanup and real delayed DPMS standby.

The verified local composition also rejects #7780's dismissal callback after the idle cycle enters locking.

Verification

Focused idle, lock, fingerprint, password-layout, and system-lock tests pass. On the dual-output hardware test, the normal splash transitioned into genuine monitor standby without a password or desktop flash. Wake restored the synchronized lock views.

Scope

This fix changes only the normal idle screensaver-to-lock handoff. Suspend and hibernate remain separate in #9231.

View raw text
### System details

Omarchy 4.0.1 Quattro, Hyprland 0.56.2, Quickshell 0.3.1, NVIDIA RTX 3080 Ti, and two 2560×1440 DisplayPort outputs at 180 Hz and 200 Hz.

### Problem

At the idle lock deadline, Omarchy removed the fullscreen screensaver while the native session lock was still creating surfaces. Depending on output timing, this exposed either the password view or the desktop before real DPMS standby.

### Cause

`omarchy-system-lock` removed the terminal screensaver before ext-session-lock reported the multi-output lock secure. When composed with the compositor-side dismissal monitor from #7780, disabling that monitor at the lock deadline could also emit an active-state callback and tear the screensaver down through the input-dismiss path.

### Verified solution

PR #9632 adds an idle-only concealed lock entry point. The lock surfaces paint black without loading the wallpaper or authentication field, the pointer is hidden during mapping, and synthetic pointer initialization cannot reveal the view. The idle service keeps the fullscreen screensaver mapped over the desktop until ext-session-lock reports secure, then performs the existing lock cleanup and real delayed DPMS standby.

The verified local composition also rejects #7780's dismissal callback after the idle cycle enters locking.

### Verification

Focused idle, lock, fingerprint, password-layout, and system-lock tests pass. On the dual-output hardware test, the normal splash transitioned into genuine monitor standby without a password or desktop flash. Wake restored the synchronized lock views.

### Scope

This fix changes only the normal idle screensaver-to-lock handoff. Suspend and hibernate remain separate in #9231.

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

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.