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: Remove > Theme does nothing when no theme has been installed by hand
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, with keys sent with wtype, on a fresh home whose ~/.config/omarchy/themes is empty, as the installer leaves it.
<!-- Bug template field "What's wrong?": -->
What's wrong?
TL;DR: on a machine with no themes installed by hand, which is most of them, Remove > Theme does nothing. Picking it closes the menu and nothing else happens: no picker, no message.
Steps:
- Check that you have no extra themes:
ls -A ~/.config/omarchy/themesprints nothing. - Open the Omarchy menu (Super+Space), go to Remove, pick Theme.
Expected: either a list of themes to remove, or no Theme row at all, the way Remove > Web App, TUI and the other Remove rows only show up when there is something to remove.
Actual: the menu closes and nothing else happens.
omarchy-theme-remove, which the row runs, does notice. Run it in a terminal and it says so:
$ omarchy-theme-remove; echo "exit=$?"
No extra themes installed.
exit=1From the menu, that message goes nowhere, so the row looks broken.
Why it happens
At a85e29a:
default/omarchy/omarchy-menu.jsonc:294:"remove.theme": {…, "action":"omarchy-theme-remove"}. It is the only Remove row that can lead to "nothing to remove" and has nowhen:.bin/omarchy-theme-removelistsfind ~/.config/omarchy/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l. With none, itechos "No extra themes installed." and exits 1.- The menu runs actions detached (
Util.execDetached→bash -lc,shell/Commons/Util.qml:57), so that stdout has no terminal. install/user/theme.sh:2creates~/.config/omarchy/themesempty. The bundled themes live in the Omarchy tree, not there.
Until 5bc151f ("Convert theme remove to a QS menu") the row ran the script in a floating terminal, so the message was at least visible. Since then it runs detached.
Update > Extra Themes had the same problem and got a when: in #7775. Its siblings under Remove got theirs in e747c38 ("Hide Remove menu entries for things that aren't installed").
Fix with a test: #14153
The audit's record of this issue on quattro 393a43d, with its reproducer: https://portal.reqproof.com/projects/omarchy/findings/KI-MENU-REMOVE-THEME-NO-THEMES
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, with keys sent with `wtype`, on a fresh home whose `~/.config/omarchy/themes` is empty, as the installer leaves it.
<!-- Bug template field "What's wrong?": -->
### What's wrong?
**TL;DR:** on a machine with no themes installed by hand, which is most of them, **Remove > Theme does nothing**. Picking it closes the menu and nothing else happens: no picker, no message.
**Steps:**
1. Check that you have no extra themes: `ls -A ~/.config/omarchy/themes` prints nothing.
2. Open the Omarchy menu (Super+Space), go to **Remove**, pick **Theme**.
**Expected:** either a list of themes to remove, or no Theme row at all, the way Remove > Web App, TUI and the other Remove rows only show up when there is something to remove.
**Actual:** the menu closes and nothing else happens.
`omarchy-theme-remove`, which the row runs, does notice. Run it in a terminal and it says so:
```
$ omarchy-theme-remove; echo "exit=$?"
No extra themes installed.
exit=1
```
From the menu, that message goes nowhere, so the row looks broken.
<details><summary>Why it happens</summary>
At `a85e29a`:
- `default/omarchy/omarchy-menu.jsonc:294`: `"remove.theme": {…, "action":"omarchy-theme-remove"}`. It is the only Remove row that can lead to "nothing to remove" and has no `when:`.
- `bin/omarchy-theme-remove` lists `find ~/.config/omarchy/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l`. With none, it `echo`s "No extra themes installed." and exits 1.
- The menu runs actions detached (`Util.execDetached` → `bash -lc`, `shell/Commons/Util.qml:57`), so that stdout has no terminal.
- `install/user/theme.sh:2` creates `~/.config/omarchy/themes` empty. The bundled themes live in the Omarchy tree, not there.
Until `5bc151f` ("Convert theme remove to a QS menu") the row ran the script in a floating terminal, so the message was at least visible. Since then it runs detached.
Update > Extra Themes had the same problem and got a `when:` in #7775. Its siblings under Remove got theirs in `e747c38` ("Hide Remove menu entries for things that aren't installed").
</details>
Fix with a test: #14153
The audit's record of this issue on `quattro` `393a43d`, with its reproducer: https://portal.reqproof.com/projects/omarchy/findings/KI-MENU-REMOVE-THEME-NO-THEMES
---
*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 issueRemove > Theme shows on a stock install, where the remover has no theme to offer and the row only closes the menu KI-MENU-REMOVE-THEME-NO-THEMES· decided by agents · verified
- Fixed bypr/14153· 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.
- DuplicateRemove > Theme shows on a stock install, where the remover has no theme to offer and the row only closes the menu KI-MENU-REMOVE-THEME-NO-THEMESDecided by agents · verified · 2026-10-08 21:36 UTC