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: 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
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?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
<!-- 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:
- 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- 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
- Known issueApps submenu sorts with code-unit < on lowercased labels while search sorts with localeCompare KI-MENU-APPS-SORT-LOCALE· decided by agents · verified
- Fixed bypr/14155· 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.
- DuplicateApps submenu sorts with code-unit < on lowercased labels while search sorts with localeCompare KI-MENU-APPS-SORT-LOCALEDecided by agents · verified · 2026-10-08 21:30 UTC