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-1303GitHub issuePublicDecided· Out of scope

Workspace indicator stuck showing phantom workspaces after rapid Super+number presses

Reported by mayaanhafeez · filed Aug 28, 2026 · open at source

Decided: Out of scope — decided by agents · verified 4 days ago.

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?
AreaOutside the audited area· 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?
Decided by agents and verified by a second, independent agent — see the decision.

Original report

Workspace indicator stuck showing phantom workspaces after rapid Super+number pressesrevision 1 · captured 2026-09-28 21:24 UTC via poll

Description

Rapidly pressing Super+<number> in a random order (e.g. Super then 1 2 3 4 4 5 6 7 8 9 0 very fast) breaks the bar's workspace indicator. The Omarchy shell (Quickshell) workspace widget gets stuck showing workspaces that don't exist / are empty and non-persistent. In my case it was stuck showing workspace "3" as active, and "9" as visible, even though hyprctl workspaces reports no workspace 3 or 9 and they have no windows.

Switching workspaces still works correctly via keyboard, but the bar indicator no longer reflects the real active workspace, so there is no reliable visual indicator of the current workspace.

Expected Behavior

The workspace indicator should always reflect Hyprland's actual workspace state, even after rapid / overlapping workspace-switch dispatches. Phantom non-persistent, empty workspaces should not remain shown in the indicator.

Steps to Reproduce

  1. Spam Super + number keys in a random, very fast order, e.g. Super then 1 2 3 4 4 5 6 7 8 9 0.
  2. Observe the bar's workspace widget.
  3. Note it can get stuck showing a workspace number (e.g. 3) as active, and an empty non-persistent workspace (e.g. 9) as visible.
  4. Confirm via hyprctl workspaces -j that those workspaces are not actually present/active.
  5. Switching workspaces with Super+number still changes the real workspace, but the indicator stays stale.

A omarchy restart shell (or omarchy refresh shell) restores the correct indicator, suggesting the widget's internal workspace tracking desyncs from Hyprland during rapid events.

System Details

  • Omarchy version: 4.0.1-1 (channel: stable)
  • Hyprland: 0.56.2 (commit efb50993)
  • Shell widget: omarchy.workspaces (Workspaces.qml) — "Workspace number indicators"
  • CPU: Intel Core i7-3520M
  • GPU: Intel HD Graphics 4000 (Ivy Bridge) + NVIDIA GF117M
  • Monitors: LVDS-1 (built-in) and VGA-1 (external) — both active
  • Package set last upgraded: Thursday, August 27 2026

Diagnostics

Note: the omarchy debug command referenced in the bug-report guide does not exist in this version (omarchy debug -> "Unknown Omarchy command"), so diagnostics were gathered manually.

hyprctl workspaces -j at time of bug (only workspaces 1 and 2 actually exist; no 3 or 9):

[{"id":1,"name":"1","monitor":"VGA-1","windows":1,"ispersistent":true},
 {"id":2,"name":"2","monitor":"LVDS-1","windows":0,"ispersistent":false}]

Capture

Screenshot of the stuck indicator (workspace 3 shown active, 9 shown visible):
/home/arch/Pictures/screenshot-2026-08-28_11-11-16.png

(github: please drag-drop attach — gh cannot upload media)

View raw text
## Description
Rapidly pressing Super+<number> in a random order (e.g. Super then 1 2 3 4 4 5 6 7 8 9 0 very fast) breaks the bar's workspace indicator. The Omarchy shell (Quickshell) workspace widget gets stuck showing workspaces that don't exist / are empty and non-persistent. In my case it was stuck showing workspace "3" as active, and "9" as visible, even though `hyprctl workspaces` reports no workspace 3 or 9 and they have no windows.

Switching workspaces still works correctly via keyboard, but the bar indicator no longer reflects the real active workspace, so there is no reliable visual indicator of the current workspace.

## Expected Behavior
The workspace indicator should always reflect Hyprland's actual workspace state, even after rapid / overlapping workspace-switch dispatches. Phantom non-persistent, empty workspaces should not remain shown in the indicator.

## Steps to Reproduce
1. Spam Super + number keys in a random, very fast order, e.g. Super then 1 2 3 4 4 5 6 7 8 9 0.
2. Observe the bar's workspace widget.
3. Note it can get stuck showing a workspace number (e.g. 3) as active, and an empty non-persistent workspace (e.g. 9) as visible.
4. Confirm via `hyprctl workspaces -j` that those workspaces are not actually present/active.
5. Switching workspaces with Super+number still changes the real workspace, but the indicator stays stale.

A `omarchy restart shell` (or `omarchy refresh shell`) restores the correct indicator, suggesting the widget's internal workspace tracking desyncs from Hyprland during rapid events.

## System Details
- Omarchy version: 4.0.1-1 (channel: stable)
- Hyprland: 0.56.2 (commit efb50993)
- Shell widget: omarchy.workspaces (Workspaces.qml) — "Workspace number indicators"
- CPU: Intel Core i7-3520M
- GPU: Intel HD Graphics 4000 (Ivy Bridge) + NVIDIA GF117M
- Monitors: LVDS-1 (built-in) and VGA-1 (external) — both active
- Package set last upgraded: Thursday, August 27 2026

## Diagnostics
Note: the `omarchy debug` command referenced in the bug-report guide does **not** exist in this version (`omarchy debug` -> "Unknown Omarchy command"), so diagnostics were gathered manually.

`hyprctl workspaces -j` at time of bug (only workspaces 1 and 2 actually exist; no 3 or 9):
```
[{"id":1,"name":"1","monitor":"VGA-1","windows":1,"ispersistent":true},
 {"id":2,"name":"2","monitor":"LVDS-1","windows":0,"ispersistent":false}]
```

## Capture
Screenshot of the stuck indicator (workspace 3 shown active, 9 shown visible):
/home/arch/Pictures/screenshot-2026-08-28_11-11-16.png

(github: please drag-drop attach — gh cannot upload media)

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.

  • Out of scopeDecided by agents · verified · 2026-10-09 09:47 UTC