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

Lock screen wallpaper doesn't reload after suspend/resume, leaving bare password input

Reported by glennbarosen · filed Aug 18, 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; not a duplicate of another report — 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

Lock screen wallpaper doesn't reload after suspend/resume, leaving bare password inputrevision 1 · captured 2026-09-28 21:29 UTC via poll

What happened

After the laptop wakes from suspend while the session was already locked, the Omarchy lock screen (Quickshell lock plugin) shows only the bare password input field — no background image, no blur, none of the normal lock screen styling. The password field still works, but the screen otherwise looks broken/unstyled until unlock.

What I expected

The lock screen to render normally on wake: themed background with blur behind the password field, same as it looks right after locking.

Steps to reproduce

  1. Lock the session (idle timeout or manual lock) so the Quickshell lock screen is showing normally.
  2. Suspend the laptop (lid close or systemctl suspend) and let it resume.
  3. Observe the lock screen after wake: bare password box on a blank background, no blur/wallpaper.

Root cause (best guess from source reading)

In shell/plugins/lock/LockView.qml, the lock background is a QML Image loaded with cache: false:

Image {
  id: wallpaper
  source: root.loadBackground ? root.fileUrl(root.backgroundPath) : ""
  ...
  cache: false
}

fileUrl() appends ?v=<backgroundVersion> as a cache-buster, but backgroundVersion is only incremented in Service.qml when the background path itself changes (new theme/background selected) — never on wake/resume:

if (next !== root.backgroundPath) {
  root.backgroundPath = next
  ...
  root.backgroundVersion += 1
}

The wake handler, runWake() in Service.qml, only starts omarchy-system-wake (restores brightness) and resets the idle-blank timer — it never touches backgroundVersion or forces the Image to reload:

function runWake() {
  if (!wakeProcess.running) wakeProcess.running = true
  if (lockRequested) armBlankTimer()
}

If the GPU-decoded texture for that Image is dropped across a real suspend/resume cycle (plausible with cache: false + i915 DRM context reset), nothing tells the Image to reload on wake, leaving the wallpaper blank while the rest of the lock UI (password field) renders fine.

System info

  • Omarchy: 4.0.0-1
  • Hyprland: 0.56.2
  • Hardware: MacBookAir7,2 (Intel Broadwell-U GT3 HD Graphics 6000, i915 driver)
  • Display manager: SDDM

Full omarchy-debug --no-sudo --print output: https://gist.github.com/glennbarosen/d8e53d19fbad2e5201e0add47ba4447e

View raw text
## What happened

After the laptop wakes from suspend while the session was already locked, the Omarchy lock screen (Quickshell `lock` plugin) shows only the bare password input field — no background image, no blur, none of the normal lock screen styling. The password field still works, but the screen otherwise looks broken/unstyled until unlock.

## What I expected

The lock screen to render normally on wake: themed background with blur behind the password field, same as it looks right after locking.

## Steps to reproduce

1. Lock the session (idle timeout or manual lock) so the Quickshell lock screen is showing normally.
2. Suspend the laptop (lid close or `systemctl suspend`) and let it resume.
3. Observe the lock screen after wake: bare password box on a blank background, no blur/wallpaper.

## Root cause (best guess from source reading)

In `shell/plugins/lock/LockView.qml`, the lock background is a QML `Image` loaded with `cache: false`:

```qml
Image {
  id: wallpaper
  source: root.loadBackground ? root.fileUrl(root.backgroundPath) : ""
  ...
  cache: false
}
```

`fileUrl()` appends `?v=<backgroundVersion>` as a cache-buster, but `backgroundVersion` is only incremented in `Service.qml` when the *background path itself* changes (new theme/background selected) — never on wake/resume:

```qml
if (next !== root.backgroundPath) {
  root.backgroundPath = next
  ...
  root.backgroundVersion += 1
}
```

The wake handler, `runWake()` in `Service.qml`, only starts `omarchy-system-wake` (restores brightness) and resets the idle-blank timer — it never touches `backgroundVersion` or forces the `Image` to reload:

```qml
function runWake() {
  if (!wakeProcess.running) wakeProcess.running = true
  if (lockRequested) armBlankTimer()
}
```

If the GPU-decoded texture for that `Image` is dropped across a real suspend/resume cycle (plausible with `cache: false` + i915 DRM context reset), nothing tells the `Image` to reload on wake, leaving the wallpaper blank while the rest of the lock UI (password field) renders fine.

## System info

- Omarchy: 4.0.0-1
- Hyprland: 0.56.2
- Hardware: MacBookAir7,2 (Intel Broadwell-U GT3 HD Graphics 6000, i915 driver)
- Display manager: SDDM

Full `omarchy-debug --no-sudo --print` output: https://gist.github.com/glennbarosen/d8e53d19fbad2e5201e0add47ba4447e

Also reported as

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

  1. Aug 18, 2026R-1675 · 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: not a duplicate of another report
  • Decided by agents · verified: matches no known issue

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