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

Menu: Remove > Theme does nothing when no theme has been installed by hand

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: Remove > Theme does nothing when no theme has been installed by handrevision 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, 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.

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 no when:.
  • bin/omarchy-theme-remove lists find ~/.config/omarchy/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l. With none, it echos "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").

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

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.