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

Menu: on a non-English desktop, Apps lists names that start with an accented letter after Z

Reported by buger · filed Oct 3, 2026 · open at source

Decided: Duplicate — decided by agents · verified 3 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?
AreaIn the audited areamenu· 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

Menu: on a non-English desktop, Apps lists names that start with an accented letter after Zrevision 1 · captured 2026-10-03 15:52 UTC via poll

<!-- Bug template field "System details": -->

System details

Omarchy quattro at 393a43d (reproduced at a85e29a; 393a43d changes only the upgrade script, not the menu). Reproduced with the shell from that tree under Quickshell, started with LANG=fr_FR.UTF-8, on a fresh home with a few desktop entries that carry French names.

<!-- Bug template field "What's wrong?": -->

What's wrong?

TL;DR: the Apps menu (Super+Alt+Space) is meant to be alphabetical, but any app whose name starts with an accented Latin letter is listed after Z. App names come from each desktop entry's Name[<lang>], so on a French desktop "Écrans" and "Éditeur de texte" come after "Zed". The same happens with Ü, Ö, Å, Ł, Ç, and so on.

Steps:

  1. Put a desktop entry with a French name in ~/.local/share/applications/:
   printf '[Desktop Entry]\nType=Application\nName=Text Editor\nName[fr]=Éditeur de texte\nExec=true\n' > ~/.local/share/applications/demo-editor.desktop
  1. Run the shell with LANG=fr_FR.UTF-8 (or use a French desktop) and open Apps.

Expected: "Éditeur de texte" between the D and F apps.
Actual: it is the last row, after every app starting with Z.

With LANG=en_US.UTF-8 the English name is shown and the order is fine.

Why it happens

shell/plugins/menu/Menu.qml:663-672 at a85e29a keeps Apps alphabetical with its own comparator:

var aLabel = String(a.label || "").toLowerCase()
var bLabel = String(b.label || "").toLowerCase()
if (aLabel < bLabel) return -1
if (aLabel > bLabel) return 1

< and > compare UTF-16 code units, and every accented letter sorts above z (U+007A). The search results under the same menu already sort with localeCompare (Menu.qml:642), as do other lists in the shell (Bluetooth devices, Tailscale, media players).

Introduced with the comparator in 7798ed3 ("Keep apps menu alphabetically sorted").

Fix with a test: #14155


Found while auditing the menu with [ReqProof](https://portal.reqproof.com/projects/omarchy).

View raw text
<!-- Bug template field "System details": -->
### System details

Omarchy `quattro` at `393a43d` (reproduced at `a85e29a`; `393a43d` changes only the upgrade script, not the menu). Reproduced with the shell from that tree under Quickshell, started with `LANG=fr_FR.UTF-8`, on a fresh home with a few desktop entries that carry French names.

<!-- Bug template field "What's wrong?": -->
### What's wrong?

**TL;DR:** the Apps menu (Super+Alt+Space) is meant to be alphabetical, but any app whose name starts with an accented Latin letter is listed **after Z**. App names come from each desktop entry's `Name[<lang>]`, so on a French desktop "Écrans" and "Éditeur de texte" come after "Zed". The same happens with Ü, Ö, Å, Ł, Ç, and so on.

**Steps:**

1. Put a desktop entry with a French name in `~/.local/share/applications/`:
   ```sh
   printf '[Desktop Entry]\nType=Application\nName=Text Editor\nName[fr]=Éditeur de texte\nExec=true\n' > ~/.local/share/applications/demo-editor.desktop
   ```
2. Run the shell with `LANG=fr_FR.UTF-8` (or use a French desktop) and open Apps.

**Expected:** "Éditeur de texte" between the D and F apps.
**Actual:** it is the last row, after every app starting with Z.

With `LANG=en_US.UTF-8` the English name is shown and the order is fine.

<details><summary>Why it happens</summary>

`shell/plugins/menu/Menu.qml:663-672` at `a85e29a` keeps Apps alphabetical with its own comparator:

```qml
var aLabel = String(a.label || "").toLowerCase()
var bLabel = String(b.label || "").toLowerCase()
if (aLabel < bLabel) return -1
if (aLabel > bLabel) return 1
```

`<` and `>` compare UTF-16 code units, and every accented letter sorts above `z` (U+007A). The search results under the same menu already sort with `localeCompare` (`Menu.qml:642`), as do other lists in the shell (Bluetooth devices, Tailscale, media players).

Introduced with the comparator in `7798ed3` ("Keep apps menu alphabetically sorted").

</details>

Fix with a test: #14155

---

*Found while auditing the menu with [ReqProof](https://portal.reqproof.com/projects/omarchy).*

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

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.