Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA 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.
[Quattro] Idle screensaver-to-lock transition flashes the password prompt
Reported by ClGratton · filed Aug 30, 2026 · open at source
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?
- 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
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
- Fixed bypr/9632· confirmed
- Fixed bypr/11746· confirmed
- Related toR-1206Password prompt flashes before displays blank on suspend and hibernate· decided by agents · verified
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.