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.
LocalSend tray suppression (#6838) is unconditional, unlike Dropbox's — and doesn't fix the Activate no-op it diagnosed
Reported by brenoperucchi · filed Sep 11, 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
What's wrong
Following up on #6838 (closed), which suppressed LocalSend's tray item and recommended Trigger > Share > Receive as the replacement surface. Two things about that fix:
The asymmetry with Dropbox is inconsistent with the reasoning already in #6838. TrayModel.js suppresses LocalSend unconditionally, but only suppresses Dropbox when its dedicated widget (omarchy.dropbox) is present in the layout:
function ownedByOmarchy(item, layout) {
return itemNamed(item, "localsend")
|| (layoutHasWidget(layout, "omarchy.dropbox") && itemNamed(item, "dropbox"))
}There is no omarchy.localsend widget anywhere in shell/plugins/ — I checked the whole tree. So LocalSend's icon is removed unconditionally in favor of a replacement that does not exist, while the exact same reasoning for Dropbox was written to depend on the replacement actually being there.
The `Activate` no-op #6838 diagnosed is confirmed live, and it's the whole reason someone would still want the icon. With the icon hidden, the only way back to a running LocalSend is Super+Ctrl+S > Receive, but that path still carries the exact bug #6838 documented: primary click on the tray icon would have been a no-op anyway (Activate has no working handler, ItemIsMenu is absent, and Quickshell — unlike Waybar's deliberate compatibility default for libappindicator — takes a missing ItemIsMenu as false). Verified on this host today, LocalSend 1.18.2-1, quickshell 0.3.1-1:
$ busctl --user introspect :1.31 /org/ayatana/NotificationItem/<id>
.Activate method ii - # present, but no working handler
.Menu property o "/org/ayatana/NotificationItem/<id>/Menu" # hasMenu is trueA user's own report of the same symptom, with the tray icon deliberately re-enabled by a local patch: double-click does nothing, right-click → Open works. Exactly hasMenu=true, onlyMenu=false, Activate silently failing.
Suggested direction
Either of these, independently:
- Condition the LocalSend suppression on a replacement existing, the same way Dropbox's is conditioned — even if that "replacement" is just checking that
Trigger > Share > Receiveis reachable, rather than suppressing unconditionally on every install. - Fix the underlying `Activate` no-op in
Tray.qml'sonClicked, which would make LocalSend's (and any other libappindicator-style item's) tray icon actually usable again, matching Waybar'sitem_is_menucompatibility default for apps that implement neitherItemIsMenunor a workingActivate. This fixes the root cause #6838 already found instead of hiding the app that hits it — and it stops being LocalSend-specific.
Reported after re-enabling the icon locally (reverting the TrayModel.js suppression) as a stopgap: it works, but is a root-owned file the next omarchy update will silently revert.
Environment
Omarchy 4.0.3-1, Hyprland 0.56.2, quickshell 0.3.1-1, LocalSend 1.18.2-1.
View raw text
## What's wrong
Following up on #6838 (closed), which suppressed LocalSend's tray item and recommended `Trigger > Share > Receive` as the replacement surface. Two things about that fix:
**The asymmetry with Dropbox is inconsistent with the reasoning already in #6838.** `TrayModel.js` suppresses LocalSend unconditionally, but only suppresses Dropbox when its dedicated widget (`omarchy.dropbox`) is present in the layout:
```js
function ownedByOmarchy(item, layout) {
return itemNamed(item, "localsend")
|| (layoutHasWidget(layout, "omarchy.dropbox") && itemNamed(item, "dropbox"))
}
```
There is no `omarchy.localsend` widget anywhere in `shell/plugins/` — I checked the whole tree. So LocalSend's icon is removed unconditionally in favor of a replacement that does not exist, while the exact same reasoning for Dropbox was written to depend on the replacement actually being there.
**The `Activate` no-op #6838 diagnosed is confirmed live, and it's the whole reason someone would still want the icon.** With the icon hidden, the only way back to a running LocalSend is `Super+Ctrl+S > Receive`, but that path still carries the exact bug #6838 documented: primary click on the tray icon would have been a no-op anyway (`Activate` has no working handler, `ItemIsMenu` is absent, and Quickshell — unlike Waybar's deliberate compatibility default for libappindicator — takes a missing `ItemIsMenu` as false). Verified on this host today, LocalSend 1.18.2-1, quickshell 0.3.1-1:
```
$ busctl --user introspect :1.31 /org/ayatana/NotificationItem/<id>
.Activate method ii - # present, but no working handler
.Menu property o "/org/ayatana/NotificationItem/<id>/Menu" # hasMenu is true
```
A user's own report of the same symptom, with the tray icon deliberately re-enabled by a local patch: double-click does nothing, right-click → Open works. Exactly `hasMenu=true`, `onlyMenu=false`, `Activate` silently failing.
## Suggested direction
Either of these, independently:
1. **Condition the LocalSend suppression on a replacement existing**, the same way Dropbox's is conditioned — even if that "replacement" is just checking that `Trigger > Share > Receive` is reachable, rather than suppressing unconditionally on every install.
2. **Fix the underlying `Activate` no-op** in `Tray.qml`'s `onClicked`, which would make LocalSend's (and any other libappindicator-style item's) tray icon actually usable again, matching Waybar's `item_is_menu` compatibility default for apps that implement neither `ItemIsMenu` nor a working `Activate`. This fixes the root cause #6838 already found instead of hiding the app that hits it — and it stops being LocalSend-specific.
Reported after re-enabling the icon locally (reverting the `TrayModel.js` suppression) as a stopgap: it works, but is a root-owned file the next `omarchy update` will silently revert.
## Environment
Omarchy 4.0.3-1, Hyprland 0.56.2, quickshell 0.3.1-1, LocalSend 1.18.2-1.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 02:34 UTC