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

Lock screen repeatedly flashes blank due to periodic "no outputs" Wayland glitch

Reported by MarcelHuang · filed Aug 16, 2026Closed upstream on 2026-09-21 by bjarneo via an automated message, as a duplicate of #6628 (R-1882). GitHub close reason: completed.

Received and recorded verbatim. Nothing has been checked 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?
Not yet mapped to any requirement or component.
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. No decision has been recorded yet.

Original report

Lock screen repeatedly flashes blank due to periodic "no outputs" Wayland glitchrevision 1 · captured 2026-10-04 12:03 UTC via poll

What happened

While locked, the screen goes completely blank for roughly a second, reappears for ~20-25 seconds, then blanks again — repeating in a continuous cycle for as long as the lock screen is up.

What I expected

The lock screen should render continuously without flickering/blanking.

Steps to reproduce

  1. Lock the screen (omarchy system lock or the idle timeout).
  2. Leave it locked and watch — it will blank and reappear on a regular ~24s cycle.

Diagnosis

journalctl --user -f while locked shows this sequence repeating roughly every 23-25 seconds, for the entire duration the lock screen is shown:

INFO qt.qpa.wayland: There are no outputs - creating placeholder screen
WARN: Layershell screen does not correspond to a real screen. Letting the compositor pick.
WARN: Layershell screen does not correspond to a real screen. Letting the compositor pick.
DEBUG: Not creating lock surface for screen QScreen(...) as it is not backed by a valid wayland output.
WARN quickshell.hyprland.ipc: Got removal for monitor "FALLBACK" which was not previously tracked.

Notably, `Telegram` (an unrelated Qt/Wayland client) logs the identical `There are no outputs - creating placeholder screen` message at the exact same timestamp every cycle — so this isn't specific to the omarchy-shell lock plugin; it looks like Hyprland/Quickshell's output list is briefly going empty for all Wayland clients on a periodic basis, and the lock screen is just the most visible casualty since it blanks the whole display when it can't attach a surface.

Screen recording attached showing three consecutive flicker cycles, timestamps corroborated against the journal (flicker events at the recording's ~26s, ~50s, and ~74s marks, matching journal timestamps 23:17:30, 23:17:54, 23:18:18).

Ruled out:
- hyprctl monitors shows the real display (HDMI-A-1) healthy throughout, no disable/mirror/DPMS issue.
- dmesg / kernel logs show no connector hotplug or EDID-loss events - not a cable/hardware issue.
- No user systemd timers, cron jobs, kanshi/autorandr, or hyprsunset schedule that could explain a ~24s periodic trigger.
- Idle/lock timing config (shell.json idle.lock=300, idle.screensaver=150; hypridle.conf 150s/152s listeners) is internally consistent, not the cause.

Possibly related: #6628 describes the omarchy-shell lock service having "existing guards for phantom screens" that can be bypassed, leading to a permanent crash requiring reboot. This issue may be a milder, recoverable manifestation of the same phantom/placeholder-screen handling path (here it recovers each cycle instead of crashing).

System details
- Omarchy: 4.0.0-1 (stable channel)
- Hyprland: 0.56.2
- Quickshell: 0.3.0 (quickshell-git 0.3.0.r20.g28771c7-1)
- GPU: AMD Radeon 780M (HawkPoint, amdgpu driver)
- CPU: AMD Ryzen 7 8745HS
- Kernel: 7.1.8-arch1-3
- Single monitor: HDMI-A-1, 3440x1440@60Hz

Note: omarchy debug referenced in the contributing docs doesn't exist as a command on this version (omarchy commands --all has no debug/diag entry) — diagnostics above were gathered manually.

View raw text
**What happened**

While locked, the screen goes completely blank for roughly a second, reappears for ~20-25 seconds, then blanks again — repeating in a continuous cycle for as long as the lock screen is up.

**What I expected**

The lock screen should render continuously without flickering/blanking.

**Steps to reproduce**

1. Lock the screen (`omarchy system lock` or the idle timeout).
2. Leave it locked and watch — it will blank and reappear on a regular ~24s cycle.

**Diagnosis**

`journalctl --user -f` while locked shows this sequence repeating roughly every 23-25 seconds, for the entire duration the lock screen is shown:

```
INFO qt.qpa.wayland: There are no outputs - creating placeholder screen
WARN: Layershell screen does not correspond to a real screen. Letting the compositor pick.
WARN: Layershell screen does not correspond to a real screen. Letting the compositor pick.
DEBUG: Not creating lock surface for screen QScreen(...) as it is not backed by a valid wayland output.
WARN quickshell.hyprland.ipc: Got removal for monitor "FALLBACK" which was not previously tracked.
```

Notably, **`Telegram` (an unrelated Qt/Wayland client) logs the identical `There are no outputs - creating placeholder screen` message at the exact same timestamp every cycle** — so this isn't specific to the omarchy-shell lock plugin; it looks like Hyprland/Quickshell's output list is briefly going empty for all Wayland clients on a periodic basis, and the lock screen is just the most visible casualty since it blanks the whole display when it can't attach a surface.

Screen recording attached showing three consecutive flicker cycles, timestamps corroborated against the journal (flicker events at the recording's ~26s, ~50s, and ~74s marks, matching journal timestamps 23:17:30, 23:17:54, 23:18:18).

Ruled out:
- `hyprctl monitors` shows the real display (HDMI-A-1) healthy throughout, no disable/mirror/DPMS issue.
- `dmesg` / kernel logs show no connector hotplug or EDID-loss events - not a cable/hardware issue.
- No user systemd timers, cron jobs, kanshi/autorandr, or hyprsunset schedule that could explain a ~24s periodic trigger.
- Idle/lock timing config (`shell.json` idle.lock=300, idle.screensaver=150; `hypridle.conf` 150s/152s listeners) is internally consistent, not the cause.

**Possibly related:** #6628 describes the omarchy-shell lock service having "existing guards for phantom screens" that can be bypassed, leading to a permanent crash requiring reboot. This issue may be a milder, recoverable manifestation of the same phantom/placeholder-screen handling path (here it recovers each cycle instead of crashing).

**System details**
- Omarchy: 4.0.0-1 (stable channel)
- Hyprland: 0.56.2
- Quickshell: 0.3.0 (quickshell-git 0.3.0.r20.g28771c7-1)
- GPU: AMD Radeon 780M (HawkPoint, amdgpu driver)
- CPU: AMD Ryzen 7 8745HS
- Kernel: 7.1.8-arch1-3
- Single monitor: HDMI-A-1, 3440x1440@60Hz

**Note:** `omarchy debug` referenced in the contributing docs doesn't exist as a command on this version (`omarchy commands --all` has no `debug`/`diag` entry) — diagnostics above were gathered manually.

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.

No decision has been recorded yet.