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-929GitHub issuePublicFixed

Menu search ranks Omarchy actions above installed apps

Reported by numanzahid · filed Sep 5, 2026 · open at source

Validation verdict: Feature request (not a defect). An engine-executed run exited 0: the expected (correct) behaviour. Awaiting a human decision.

At a glance

1 · What is claimed?
  • ConfirmedFeature request — asks for new behaviour no requirement demands (not a defect)
3 · Is it reproducible?
An engine-executed run exited 0: the expected (correct) behaviour. See reproducer
4 · What remains unclear?
  • Open question for maintainers: Should the app you want to launch outrank better text matches across tiers, as #12223 does? Or should the current tiers stay, with a safer Enter on Setup > Defaults? Today the default-browser actions run immediately, with no confirmation.
  • Open question for maintainers: The order depends on what is installed. On a Linux test machine with Chromium installed as an app, 'chro' puts the Chromium app first and Enter launches it; the reported order needs Chrome installed without Chromium. Is the Chrome-only setup common enough to shape the ranking around it?
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

Menu search ranks Omarchy actions above installed appsrevision 1 · captured 2026-09-28 21:23 UTC via poll

System details

Latitude 7390 2-in-1

What's wrong?

In the unified Omarchy menu/search, installed applications can appear below Omarchy settings/actions even when the typed query is clearly intended to launch an app.

  1. Open the Omarchy menu with SUPER + SPACE.
  2. Type chro.
  3. Press Enter.

Expected: Google Chrome opens.

Actual: Setup > Defaults > Browser > Chrome is selected first, so pressing Enter sets/changes the default browser instead of launching Chrome.

A similar issue happens with searches like text: Omarchy settings/actions related to text appear above actual text-related applications, so apps are pushed down the list.

Why this is confusing

For launcher-style search, pressing Enter after typing an app name prefix usually means “launch the app.” In this case, the first result may perform a settings/configuration action instead, which is surprising and can change system defaults unintentionally.

This looks like it belongs in features, but wrong search results end up changing the system settings.

Suggested behavior

When searching from the root unified menu, installed apps should rank above Omarchy settings/actions for strong app-name matches.

For example:

  • App name prefix matches should beat settings/action prefix matches.
  • Exact app-name matches should always be first.
  • Settings/actions can still appear below apps, or possibly require a prefix/filter if users want

command/menu search first.

Chrome is far away, pressing enter changes the default browser.
<img width="470" height="542" alt="Image" src="https://github.com/user-attachments/assets/9a2c8ec4-e88e-480c-8bae-53f0001f840e" />

File manager is not first option, pressing enter opens something else.
<img width="455" height="342" alt="Image" src="https://github.com/user-attachments/assets/306bde61-8172-4a96-b1ea-288e0e31ad99" />

the default editor/any text editor is further down the line.
<img width="426" height="712" alt="Image" src="https://github.com/user-attachments/assets/36f8466a-2451-4e51-8ab4-4aca3ff5c078" />

View raw text
### System details

Latitude 7390 2-in-1

### What's wrong?

In the unified Omarchy menu/search, installed applications can appear below Omarchy settings/actions even when the typed query is clearly intended to launch an app.

1. Open the Omarchy menu with `SUPER + SPACE`.
2. Type `chro`.
3. Press Enter.

Expected: Google Chrome opens.

Actual: `Setup > Defaults > Browser > Chrome` is selected first, so pressing Enter sets/changes the default browser instead of launching Chrome.

A similar issue happens with searches like `text`: Omarchy settings/actions related to text appear above actual text-related applications, so apps are pushed down the list.

### Why this is confusing

For launcher-style search, pressing Enter after typing an app name prefix usually means “launch the app.” In this case, the first result may perform a settings/configuration action instead, which is surprising and can change system defaults unintentionally.

This looks like it belongs in features, but wrong search results end up changing the system settings.

### Suggested behavior

When searching from the root unified menu, installed apps should rank above Omarchy settings/actions for strong app-name matches.

For example:

- App name prefix matches should beat settings/action prefix matches.
- Exact app-name matches should always be first.
- Settings/actions can still appear below apps, or possibly require a prefix/filter if users want
command/menu search first.

Chrome is far away, pressing enter changes the default browser.
<img width="470" height="542" alt="Image" src="https://github.com/user-attachments/assets/9a2c8ec4-e88e-480c-8bae-53f0001f840e" />

File manager is not first option, pressing enter opens something else.
<img width="455" height="342" alt="Image" src="https://github.com/user-attachments/assets/306bde61-8172-4a96-b1ea-288e0e31ad99" />

the default editor/any text editor is further down the line.
<img width="426" height="712" alt="Image" src="https://github.com/user-attachments/assets/36f8466a-2451-4e51-8ab4-4aca3ff5c078" />
  • 9a2c8ec4-e88e-480c-8bae-53f0001f840e
  • 306bde61-8172-4a96-b1ea-288e0e31ad99
  • 36f8466a-2451-4e51-8ab4-4aca3ff5c078

Also reported as

R-929 is the earliest report of this defect, filed Sep 5, 2026. 1 later report describes the same defect.

  1. Sep 5, 2026R-929 · this report— the original
  2. ·Decided by agents · verified

    Open upstream.

Validation

AI validator claude-code (claude-opus-5.5) · evaluated revision 1 at product commit 1e43373287af · sealed 2026-10-04T21:45:46Z

Validator's summary (commentary, not evidence)

Re-validation of omacom/omarchy#10340 on quattro-proof 1e433732 (upstream quattro 035ce29f product code plus the proof layer). The verdict is unchanged: this is a feature request, not a defect. The menu code these checks run is unchanged since the previous validation (311d29c7..1e433732 merges upstream 035ce29f, whose only menu changes are two data rows in the stock omarchy-menu.jsonc (Install/Remove > Service > Microsoft), the image-picker helper bin/omarchy-menu-images and one display property on the bar's menu button; Menu.qml, MenuModel.js, ConfirmDialog.qml and omarchy-menu-select are byte-identical, and the rest is lock-screen and other non-menu upstream changes plus proof-layer records). Requirement SW-REQ-260922-SJ7P ranks matches in tiers: exact label, whole-word app name, label prefix, label substring, name text, then description. For 'chro', the Chromium and Chrome default-browser actions match as label prefixes and 'Google Chrome' matches as a label substring, so the order in the report is the order the requirement specifies. The reproducer checks that order and passes. We also checked a running shell with only a Google Chrome desktop entry installed, as in the report: typing 'chro' selects 'Setup > Defaults > Browser > Chromium', and the app is row 4, as reported. With #12223 merged, the app is row 1. The report asks for the app you want to launch to outrank better text matches across tiers. No requirement says that, and the code does what the requirement says, so this is a ranking-policy change for maintainers to decide; #12223 implements it. The reporter's concern is real: Enter on the top row changes the default browser without asking for confirmation. We list that as an open question rather than a defect. SW-REQ-260922-SJ7P now says apps move up by 5 within a tier (merged PR #6383 ranks an app ahead of an equal menu row on purpose), which resolves the earlier open question about the app nudge; the tier order the verdict rests on is unchanged. The reproducer was re-run on 1e433732: same rows, order and results; only the declaration-order part of three scores moved by 1 or 2, because the two new Microsoft rows are declared before those rows (they do not match 'chro'). The live-shell runs are reused from 20d4e6ae (author-recorded): the menu and search code is unchanged since then apart from comment-only trace lines.

  • ConfirmedNot a bug

    Feature request — asks for new behaviour no requirement demands (not a defect)

    Engine: engine-executed run exited 0: the expected (correct) behaviour; reason (argued, not verified): feature request

    Evidence: file test/reports/report-cmulr908f0k131gw4hy0pcx08.sh

    Validator's rationale (commentary): SW-REQ-260922-SJ7P: 'Scores tier exact label, whole-word app name, label prefix, label substring, name text, then description.' 'Chrome' and 'Chromium' match as label prefixes; 'Google Chrome' matches as a label substring. The reproducer checks that tier order and passes. The reporter asks for apps to outrank actions across tiers, which no requirement states.

Engine reference checks at 1e43373287af (11/11 ok)
  • okcommit1e43373287afbd6dca4674ad463d5b5db7812358
  • okbase commit1e43373287afbd6dca4674ad463d5b5db7812358
  • okbase ancestry1e43373287afbd6dca4674ad463d5b5db7812358
  • okproduct code untouchedthis report's reproducer branch
  • okbranchthis report's reproducer branch
  • okfiletest/reports/report-cmulr908f0k131gw4hy0pcx08.sh
  • okrequirementSW-REQ-260922-SJ7P
  • okrequirementSW-REQ-260922-TKDP
  • okrequirementSYS-REQ-260922-V7W6
  • okcomponentmenu
  • okknown issueKI-MENU-SEARCH-SCORE-RANKING

The engine's own check, at validation time, that the commits, the reproducer branch (touching only reproducer files), the reproducer files and every mapped requirement / component / known issue really exist.

10 earlier checks — superseded by the newest one above

Each new check of the report replaces the previous one; only the newest result above counts. Earlier results are kept for the record.

  • Feature request (not a defect)— checked report revision 1 on Oct 4, 2026; earlier check, superseded
  • Feature request (not a defect)— checked report revision 1 on Oct 3, 2026; earlier check, superseded
  • Feature request (not a defect)— checked report revision 1 on Oct 3, 2026; earlier check, superseded
  • Feature request (not a defect)— checked report revision 1 on Oct 2, 2026; earlier check, superseded
  • Feature request (not a defect)— checked report revision 1 on Oct 2, 2026; earlier check, superseded
  • Feature request (not a defect)— checked report revision 1 on Oct 2, 2026; earlier check, superseded
  • Feature request (not a defect)— checked report revision 1 on Oct 2, 2026; earlier check, superseded
  • Feature request (not a defect)— checked report revision 1 on Oct 1, 2026; earlier check, superseded
  • Feature request (not a defect)— checked report revision 1 on Oct 1, 2026; earlier check, superseded
  • Feature request (not a defect)— checked report revision 1 on Sep 29, 2026; earlier check, superseded

Validator-authored hypothesis. Each claim's verification is engine-computed: confirmed only from an engine-executed reproducer run recorded in this record, refuted when recorded evidence contradicts it. Prose is commentary. The disposition of the report is a human decision.

Reproducer

engine-runexit 0 · expected exit 0 · defect exit 1 · 35 ms · 2026-10-04T21:45:46Z→ showed the correct behaviour
test/reports/report-cmulr908f0k131gw4hy0pcx08.shon this report's reproducer branch @ 1e43373287
sh test/reports/report-cmulr908f0k131gw4hy0pcx08.sh

Setup failure: exit 2 means the reproducer could not set up (e.g. the product did not build) — such a run decides nothing.

Defect signal: output contains DEFECT:

Observed output · 486 bytes
search 'chro' from the root menu, top rows:
  1. [action] Setup › Defaults › Browser › Chromium (score 10197)
  2. [action] Setup › Defaults › Browser › Chrome (score 10198)
  3. [action] Install › Service › Chromium Account (score 10250)
  4. [action] Remove › Browser › Chrome (score 10321)
  5. [app] Apps › Google Chrome (score 25372)
ok: 'Chrome' (label-prefix tier) ranks above the app 'Google Chrome' (label-substring tier), as SW-REQ-260922-SJ7P specifies

Needs: linux · node >= 18 on PATH (the script exits 2 with SETUP: otherwise); nothing to build: MenuModel.js is plain JavaScript loaded straight from the worktree · ran on linux/amd64

Author's comparative runs — commentary, not engine evidence
  • author-recordedon this baseline · exit 1
    REPORT_ASSERT=reporter-expectation sh test/reports/report-cmulr908f0k131gw4hy0pcx08.sh
    NOT-MET: first row is [action] Setup › Defaults › Browser › Chromium; the installed app is row 5
  • author-recordedon this baseline with upstream PR omacom/omarchy#12223 head b74292ac merged · exit 0
    REPORT_ASSERT=reporter-expectation sh test/reports/report-cmulr908f0k131gw4hy0pcx08.sh
    MET: the installed app ranks first, as the reporter requests
  • author-recordedon live shell (Quickshell 0.3.1, headless sway), this baseline, only a Google Chrome desktop entry installed [run on 20d4e6ae, same menu code] · exit 1
    summon the root menu, type 'chro'
    1. [action] Chromium (Setup › Defaults › Browser) <- Enter; 2. [action] Chrome; 3. [action] Chrome (Install › Browser); 4. [app] Google Chrome
  • author-recordedon live shell, this baseline with upstream PR omacom/omarchy#12223 head b74292ac merged [run on 20d4e6ae, same menu code] · exit 0
    same
    1. [app] Google Chrome <- Enter; actions follow

Linked

  • Fixed bypr/10457· confirmed
  • Fixed bypr/12223· confirmed
  • Related PRpr/9159· 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.