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.
Tray context menu does not dismiss from its trigger or elsewhere on the bar
Reported by SmithLabsLLC · filed Aug 31, 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?
- 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
System details
Intel Core i5-1235U / Intel Iris Xe, Omarchy 4.0.1-1, Hyprland 0.56.2-1, Quickshell 0.3.1-1, kernel 7.1.9-arch1-2
What's wrong?
The system-tray context menu opens on right-click, but a second right-click on the same tray item leaves the menu open. Opening the menu and then clicking elsewhere on the Omarchy bar also leaves it open.
This is separate from #8111. That issue concerns clicks being rejected before a tray action can run; this report concerns dismissal after a menu is already open.
Steps to reproduce
- Start any application that exposes a healthy StatusNotifierItem menu.
- Right-click its icon in the Omarchy system tray.
- Right-click the same tray icon again.
- Open the menu again, then left-click another location on the top bar.
Actual behavior
- The second right-click leaves the same menu open.
- Clicking elsewhere on the bar leaves the menu open.
Expected behavior
- Repeating the trigger on the same tray item closes its open menu.
- Clicking outside the popup, including elsewhere on the bar, dismisses it.
Source-level cause
There are two independent paths:
shell/plugins/bar/widgets/Tray.qml'sopenTrayMenu()always assignstrayMenuOpen = true; it does not detect that the same item's menu is already open and toggle it closed.shell/Ui/PopupCard.qmlincludes both the popup and the complete anchor window inHyprlandFocusGrab.windows. For a tray popup the anchor window is the entire bar, so a click elsewhere on that bar remains inside the focus grab and cannot dismiss the popup.
Fix direction and validation
A focused local patch adds an includeAnchorWindowInFocusGrab opt-out that defaults to true, disables it only for tray popups, and explicitly toggles the same open tray item closed. Existing PopupCard consumers retain their current behavior. Submenu handling and menu-entry activation are unchanged.
The patch applies cleanly to Omarchy commit 56fbaf4689e3eb6867c0b7f375ae49964f183774, and the supported cloned tray plugin passes omarchy plugin validate with the change. The upstream files affected are:
shell/Ui/PopupCard.qmlshell/plugins/bar/widgets/Tray.qml
I generated omarchy-debug --no-sudo --print locally, but the full output contains unrelated host and network identifiers, so I am not attaching it. The relevant versions are included above.
View raw text
### System details Intel Core i5-1235U / Intel Iris Xe, Omarchy 4.0.1-1, Hyprland 0.56.2-1, Quickshell 0.3.1-1, kernel 7.1.9-arch1-2 ### What's wrong? The system-tray context menu opens on right-click, but a second right-click on the same tray item leaves the menu open. Opening the menu and then clicking elsewhere on the Omarchy bar also leaves it open. This is separate from #8111. That issue concerns clicks being rejected before a tray action can run; this report concerns dismissal after a menu is already open. #### Steps to reproduce 1. Start any application that exposes a healthy StatusNotifierItem menu. 2. Right-click its icon in the Omarchy system tray. 3. Right-click the same tray icon again. 4. Open the menu again, then left-click another location on the top bar. #### Actual behavior - The second right-click leaves the same menu open. - Clicking elsewhere on the bar leaves the menu open. #### Expected behavior - Repeating the trigger on the same tray item closes its open menu. - Clicking outside the popup, including elsewhere on the bar, dismisses it. #### Source-level cause There are two independent paths: 1. `shell/plugins/bar/widgets/Tray.qml`'s `openTrayMenu()` always assigns `trayMenuOpen = true`; it does not detect that the same item's menu is already open and toggle it closed. 2. `shell/Ui/PopupCard.qml` includes both the popup and the complete anchor window in `HyprlandFocusGrab.windows`. For a tray popup the anchor window is the entire bar, so a click elsewhere on that bar remains inside the focus grab and cannot dismiss the popup. #### Fix direction and validation A focused local patch adds an `includeAnchorWindowInFocusGrab` opt-out that defaults to `true`, disables it only for tray popups, and explicitly toggles the same open tray item closed. Existing `PopupCard` consumers retain their current behavior. Submenu handling and menu-entry activation are unchanged. The patch applies cleanly to Omarchy commit `56fbaf4689e3eb6867c0b7f375ae49964f183774`, and the supported cloned tray plugin passes `omarchy plugin validate` with the change. The upstream files affected are: - `shell/Ui/PopupCard.qml` - `shell/plugins/bar/widgets/Tray.qml` I generated `omarchy-debug --no-sudo --print` locally, but the full output contains unrelated host and network identifiers, so I am not attaching it. The relevant versions are included above.
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 10:13 UTC