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.
herdr desktop notifications show with no icon or app identity
Reported by mattroe · filed Oct 5, 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
Summary
Omarchy packages herdr and ships its config, but herdr's desktop notifications show in the Omarchy shell with no icon and nothing identifying them as herdr. They are also treated as throwaway noise, so an agent finishing while do-not-disturb is on never reaches notification history.
Steps to reproduce
- Set
[ui.toast] delivery = "system"in~/.config/herdr/config.tomland runherdr server reload-config. - Run
herdr notification show "test" --body "hello", or let an agent finish in a background tab.
What happens
herdr 0.8.2 posts through a bare notify-send. Captured with dbus-monitor:
member=Notify
string "notify-send" # app_name
uint32 0
string "" # app_icon
string "herdr icon probe"
string "checking what herdr sends"
hints: urgency=1, sender-pidIn the shell that means:
- No icon.
plugins/notifications/components/NotificationCard.qmlrendersimageoriconSource(appIcon)only, and herdr supplies neither. - No identity. The app name is
notify-send, soisEphemeralinplugins/notifications/Service.qmlclasses it as ephemeral. Under do-not-disturb a "finished" or "needs input" toast is silenced and not recorded.
Suggested changes
- Move the packaged herdr from 0.8.2 to 0.9.x. Since then
src/platform/linux.rsrunsnotify-send --app-name Herdr -- <title> <body>, which fixes the identity and the ephemeral classification. - Ship a herdr icon. The herdr package installs only the binary and a licence; upstream has
assets/logo.svg. - Have the shell show that icon for notifications whose app name is
Herdr, since herdr passes no--iconeven on 0.9.3. A lookup from app name to icon whenapp_iconis empty would do it.
Workaround
delivery = "terminal" routes the notification through Ghostty, which gives it Ghostty's icon and a real app name.
Versions
- omarchy 4.0.4-1
- herdr 0.8.2-1 (omarchy repo)
- quickshell 0.3.1-1
- libnotify 0.8.8-1
View raw text
## Summary Omarchy packages herdr and ships its config, but herdr's desktop notifications show in the Omarchy shell with no icon and nothing identifying them as herdr. They are also treated as throwaway noise, so an agent finishing while do-not-disturb is on never reaches notification history. ## Steps to reproduce 1. Set `[ui.toast] delivery = "system"` in `~/.config/herdr/config.toml` and run `herdr server reload-config`. 2. Run `herdr notification show "test" --body "hello"`, or let an agent finish in a background tab. ## What happens herdr 0.8.2 posts through a bare `notify-send`. Captured with `dbus-monitor`: ``` member=Notify string "notify-send" # app_name uint32 0 string "" # app_icon string "herdr icon probe" string "checking what herdr sends" hints: urgency=1, sender-pid ``` In the shell that means: 1. No icon. `plugins/notifications/components/NotificationCard.qml` renders `image` or `iconSource(appIcon)` only, and herdr supplies neither. 2. No identity. The app name is `notify-send`, so `isEphemeral` in `plugins/notifications/Service.qml` classes it as ephemeral. Under do-not-disturb a "finished" or "needs input" toast is silenced and not recorded. ## Suggested changes - Move the packaged herdr from 0.8.2 to 0.9.x. Since then `src/platform/linux.rs` runs `notify-send --app-name Herdr -- <title> <body>`, which fixes the identity and the ephemeral classification. - Ship a herdr icon. The herdr package installs only the binary and a licence; upstream has `assets/logo.svg`. - Have the shell show that icon for notifications whose app name is `Herdr`, since herdr passes no `--icon` even on 0.9.3. A lookup from app name to icon when `app_icon` is empty would do it. ## Workaround `delivery = "terminal"` routes the notification through Ghostty, which gives it Ghostty's icon and a real app name. ## Versions - omarchy 4.0.4-1 - herdr 0.8.2-1 (omarchy repo) - quickshell 0.3.1-1 - libnotify 0.8.8-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 21:42 UTC