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.
Lock screen wallpaper doesn't reload after suspend/resume, leaving bare password input
Reported by glennbarosen · filed Aug 18, 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; 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
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
- Lock the session (idle timeout or manual lock) so the Quickshell lock screen is showing normally.
- Suspend the laptop (lid close or
systemctl suspend) and let it resume. - 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.
- Aug 18, 2026R-1675 · this report— the original
- ·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.