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

[Quattro] Lock wallpaper can show only its fallback color after resume

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] Lock wallpaper can show only its fallback color after resumerevision 1 · captured 2026-09-28 21:24 UTC via poll

System details

  • Omarchy 4.0.1-1 (Quattro)
  • Hyprland 0.56.2-1
  • NVIDIA RTX 3080 Ti
  • Two DisplayPort outputs: 2560x1440 at 180 Hz and 200 Hz
  • Linux 7.1.9

What is wrong?

After suspending while the native session lock is active, the restored lock surface can show only the flat gray/theme fallback color for roughly two seconds. The blurred wallpaper appears only after later input causes another frame. The password UI may already exist during the fallback frame.

This is independent of the DPMS reblank timer in #7399 and the password-focus defect in #9180: after those paths were fixed locally, the fallback frame still reproduced until the wallpaper loading path was changed.

Steps to reproduce

  1. Lock the session and suspend through the normal Omarchy path.
  2. Resume on a system whose outputs are recreated during DisplayPort link training.
  3. Observe the first lock frames before typing.
  4. The lock can display Color.background without the blurred wallpaper; subsequent input makes the wallpaper appear.

Root cause

LockView.qml deliberately loads the wallpaper asynchronously with cache: false. A lock output recreated after resume therefore begins with an empty Image while the containing Rectangle paints Color.background. The same wallpaper was already known while the session was unlocked, but the service did not decode or retain it for the output sizes that the lock surfaces need.

Expected

A recreated lock surface paints the configured wallpaper on its first visible frame, without an intermediate flat-color screen.

Verified fix

A cloned omarchy.lock preloads the cache-busted wallpaper URL for each active output size while unlocked. LockView then uses the same URL and size synchronously from the shared image cache. The gray resume frame stopped reproducing on the affected dual-output setup.

A focused test covers per-output preloading, exact output sizing, matching cache-busted URLs, and synchronous cache reuse. PR follows.

View raw text
### System details

- Omarchy 4.0.1-1 (Quattro)
- Hyprland 0.56.2-1
- NVIDIA RTX 3080 Ti
- Two DisplayPort outputs: 2560x1440 at 180 Hz and 200 Hz
- Linux 7.1.9

### What is wrong?

After suspending while the native session lock is active, the restored lock surface can show only the flat gray/theme fallback color for roughly two seconds. The blurred wallpaper appears only after later input causes another frame. The password UI may already exist during the fallback frame.

This is independent of the DPMS reblank timer in #7399 and the password-focus defect in #9180: after those paths were fixed locally, the fallback frame still reproduced until the wallpaper loading path was changed.

### Steps to reproduce

1. Lock the session and suspend through the normal Omarchy path.
2. Resume on a system whose outputs are recreated during DisplayPort link training.
3. Observe the first lock frames before typing.
4. The lock can display `Color.background` without the blurred wallpaper; subsequent input makes the wallpaper appear.

### Root cause

`LockView.qml` deliberately loads the wallpaper asynchronously with `cache: false`. A lock output recreated after resume therefore begins with an empty `Image` while the containing `Rectangle` paints `Color.background`. The same wallpaper was already known while the session was unlocked, but the service did not decode or retain it for the output sizes that the lock surfaces need.

### Expected

A recreated lock surface paints the configured wallpaper on its first visible frame, without an intermediate flat-color screen.

### Verified fix

A cloned `omarchy.lock` preloads the cache-busted wallpaper URL for each active output size while unlocked. LockView then uses the same URL and size synchronously from the shared image cache. The gray resume frame stopped reproducing on the affected dual-output setup.

A focused test covers per-output preloading, exact output sizing, matching cache-busted URLs, and synchronous cache reuse. PR follows.

Also reported as

R-1213 is the earliest report of this defect, filed Aug 30, 2026. 1 later report describes the same defect.

  1. Aug 30, 2026R-1213 · this report— the original
  2. ·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

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: in the audited area (lock)
  • Decided by agents · verified: matches no known issue

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