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.
Menu launcher lost Walker's web-search fallback for no-match queries
Reported by Balmisjutas · filed Aug 15, 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?
- 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?
- Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. So far: in the audited area (menu) — decided by agents · verified; matches no known issue — decided by agents · verified; not a duplicate of another report — decided by agents · verified. The outcome (valid, duplicate, not a bug, …) is not decided yet. See the decision.
Original report
Title: Menu launcher lost Walker's "search the web" fallback for no-match queries
Before Quattro, Walker's websearch provider (via elephant) meant typing a
query with no matching app/setting would still let you hit Enter and get a
web search in your default browser. The new native Omarchy menu (Super+Space)
searches apps/settings/menu entries fine, but there's no fallback at all when
nothing matches — Enter just does nothing.
Checked the actual Menu.qml/MenuModel.js source to confirm this isn't
just undocumented: there's no websearch, google, or similar string
anywhere in /usr/share/omarchy/shell/plugins/menu/. It looks like an
omission from the Walker->native rewrite rather than an intentional drop.
I patched it locally (as a cloned omarchy.menu plugin, so it's easy to
test without touching the packaged copy) and it's a small, surgical change:
in rebuildDisplay(), when a search query produces zero rows, synthesize
one fallback row whose action shells out to omarchy-launch-browser (the
existing helper that already respects the user's actual default browser viaxdg-settings, not any specific browser) with a Google search URL for the
typed query.
Diff against shell/plugins/menu/Menu.qml:
@@ -602,6 +602,29 @@
for (var d = 0; d < drilldownRows.length; d++) drilldownRows[d].section = "drilldown"
}
rows = currentRows.concat(drilldownRows)
+
+ // No app/setting/menu entry matched — fall back to a web search, the
+ // way Walker's "websearch" elephant provider used to.
+ if (rows.length === 0) {
+ rows = [{
+ itemId: "lemec.websearch",
+ kind: "action",
+ icon: "",
+ iconFont: "",
+ appIcon: "",
+ appId: "",
+ label: "Search Google for “" + query + "”",
+ target: "",
+ detail: "",
+ path: "",
+ childCount: 0,
+ action: "omarchy-launch-browser " + Util.shellQuote("https://www.google.com/search?q=" + encodeURIComponent(query)),
+ provider: "",
+ score: 0,
+ section: ""
+ }]
+ }
} else {
for (var j = 0; j < root.itemOrder.length; j++) {
var child = root.item(root.itemOrder[j])Tested live: reloaded the shell with the cloned plugin, searched a nonsense
string, confirmed the fallback row renders, hit Enter, confirmed it opens
the actual configured default browser (tested with both Chromium and Brave)
at the right Google search URL — and confirmed normal app/setting search is
completely unaffected when there IS a match.
Happy to open this as a PR against the packaged menu plugin if that's
wanted, or if there's a reason this was left out on purpose I'd like to
know so I can stop working around it locally.
View raw text
Title: Menu launcher lost Walker's "search the web" fallback for no-match queries
Before Quattro, Walker's `websearch` provider (via elephant) meant typing a
query with no matching app/setting would still let you hit Enter and get a
web search in your default browser. The new native Omarchy menu (Super+Space)
searches apps/settings/menu entries fine, but there's no fallback at all when
nothing matches — Enter just does nothing.
Checked the actual `Menu.qml`/`MenuModel.js` source to confirm this isn't
just undocumented: there's no `websearch`, `google`, or similar string
anywhere in `/usr/share/omarchy/shell/plugins/menu/`. It looks like an
omission from the Walker->native rewrite rather than an intentional drop.
I patched it locally (as a cloned `omarchy.menu` plugin, so it's easy to
test without touching the packaged copy) and it's a small, surgical change:
in `rebuildDisplay()`, when a search query produces zero rows, synthesize
one fallback row whose action shells out to `omarchy-launch-browser` (the
existing helper that already respects the user's actual default browser via
`xdg-settings`, not any specific browser) with a Google search URL for the
typed query.
Diff against `shell/plugins/menu/Menu.qml`:
```diff
@@ -602,6 +602,29 @@
for (var d = 0; d < drilldownRows.length; d++) drilldownRows[d].section = "drilldown"
}
rows = currentRows.concat(drilldownRows)
+
+ // No app/setting/menu entry matched — fall back to a web search, the
+ // way Walker's "websearch" elephant provider used to.
+ if (rows.length === 0) {
+ rows = [{
+ itemId: "lemec.websearch",
+ kind: "action",
+ icon: "",
+ iconFont: "",
+ appIcon: "",
+ appId: "",
+ label: "Search Google for “" + query + "”",
+ target: "",
+ detail: "",
+ path: "",
+ childCount: 0,
+ action: "omarchy-launch-browser " + Util.shellQuote("https://www.google.com/search?q=" + encodeURIComponent(query)),
+ provider: "",
+ score: 0,
+ section: ""
+ }]
+ }
} else {
for (var j = 0; j < root.itemOrder.length; j++) {
var child = root.item(root.itemOrder[j])
```
Tested live: reloaded the shell with the cloned plugin, searched a nonsense
string, confirmed the fallback row renders, hit Enter, confirmed it opens
the actual configured default browser (tested with both Chromium and Brave)
at the right Google search URL — and confirmed normal app/setting search is
completely unaffected when there IS a match.
Happy to open this as a PR against the packaged menu plugin if that's
wanted, or if there's a reason this was left out on purpose I'd like to
know so I can stop working around it locally.
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
- Fixed bypr/7075· confirmed
- Fixed bypr/8012· confirmed
- Fixed bypr/13971· confirmed
- Fixed bypr/8537· confirmed
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.
- Decided by agents · verified: in the audited area (menu)
- Decided by agents · verified: matches no known issue
- Decided by agents · verified: not a duplicate of another report
The outcome (valid, duplicate, not a bug, …) is not decided yet.