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

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

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

LocalSend tray suppression (#6838) is unconditional, unlike Dropbox's — and doesn't fix the Activate no-op it diagnosedrevision 1 · captured 2026-09-28 21:23 UTC via poll

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 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.

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