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-623GitHub issuePublicReceived

aarch64: menu offers impossible installs (Spotify, Dropbox) and the floating terminal reports "Done!" on failure

Reported by Fromzy1 · filed Sep 13, 2026 · open at source

Partly in the audited area (menu) — decided by agents · verified. Not validated yet.

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?
AreaPartly in 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?
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: partly in the audited area (menu) — decided by agents · verified; matches no known issue — decided by agents · verified. The outcome (valid, duplicate, not a bug, …) is not decided yet. See the decision.

Original report

aarch64: menu offers impossible installs (Spotify, Dropbox) and the floating terminal reports "Done!" on failurerevision 1 · captured 2026-09-28 21:23 UTC via poll

Summary

On aarch64, the Omarchy menu offers package installs that can never succeed, and the floating-terminal wrapper reports Done! when they fail. Together these produce a silent infinite loop: the user picks "Install → Service → Spotify", sees Done!, and Spotify is still not installed — every time, with no indication anything went wrong.

Two separate defects, filed together because the second is what makes the first invisible. Happy to split them if you'd prefer.


Bug 1 — menu offers installs that are impossible on the running architecture

omarchy-menu.jsonc gates the Spotify entry purely on whether the package is present:

"install.service.spotify": {
  "icon":"󰓇","label":"Spotify",
  "when":"! omarchy-pkg-present spotify",
  "action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-service-spotify"
}

spotify is x86_64-only — the AUR PKGBUILD is arch=('x86_64') and its source is an amd64 .deb from repository.spotify.com. On aarch64 it is simply not in any repo:

$ pacman -Si spotify
error: package 'spotify' was not found

So omarchy-install-service-spotify fails at omarchy-pkg-add spotify, set -e aborts the script before the setsid uwsm-app -- /usr/bin/spotify line, the package is never installed, the when guard stays true, and the entry is offered again forever.

This is not Spotify-specific. Auditing every omarchy-install-service-* entry against the aarch64 repos:

ServicePackageAvailable on aarch64
spotifyspotifyno
dropboxdropbox, dropbox-cli, nautilus-dropbox, libappindicator-gtk3no
signalsignal-desktopyes
tailscaletailscaleyes
nordvpnnordvpn-binyes
onceonce-binyes

Dropbox has exactly the same failure mode. There is currently no architecture gating anywhere in the menu — grep -c 'uname\|x86_64\|aarch64' omarchy-menu.jsonc returns 0.

Since when is arbitrary shell, a gate is cheap. Either make it architecture-aware, or better, gate on actual installability so it self-maintains:

"when":"! omarchy-pkg-present spotify && pacman -Si spotify &>/dev/null"

Bug 2 — the presentation wrapper reports success for failed commands

omarchy-launch-floating-terminal-with-presentation:

presentation_script="omarchy-show-logo; $cmd; if (( \$? != 130 )); then omarchy-show-done; fi"

omarchy-show-done prints a green ● Done! for every exit status except 130 (Ctrl-C). A command that fails with exit 1 is presented identically to one that succeeded. That is what turns Bug 1 from an obvious error into a mystery — the pacman error does scroll past above the prompt, but the last thing on screen is a green Done!.

Suggested fix — branch on the status rather than only excluding 130:

presentation_script="omarchy-show-logo; $cmd; status=\$?; if (( status == 130 )); then :; elif (( status == 0 )); then omarchy-show-done; else omarchy-show-failed \$status; fi"

Steps to reproduce

On any aarch64 Omarchy install:

  1. SUPER + SPACE, type spotify, select Install → Service → Spotify
  2. Enter the sudo password
  3. Observe the green Done!
  4. pacman -Q spotify → error: package 'spotify' was not found
  5. Repeat from step 1 — the entry is still offered, with the identical outcome

Expected

Either the entry is not offered on an architecture where the package cannot be installed, or the install failure is surfaced plainly instead of being reported as Done!.

Actual

The install fails silently and the menu entry loops forever.

System

Omarchy4.0.1.r6114.g1e06f6fa6bec-1
Kernel7.2.0-1-aarch64-ARCH
Archaarch64 (Apple Silicon, virtualised)
Hyprland0.56.1
Reposcore extra alarm aur

Side note

For anyone landing here looking for Spotify on aarch64: the web player is not a workaround either, since there is no Widevine CDM for Linux_aarch64 in either Chromium (the ALARM build ships none) or Firefox (Mozilla's GMP service offers only OpenH264 for that platform). The working options are the native librespot-based clients in extra — spotify-player or ncspot — both of which require Spotify Premium. Note that the spotify-player package installs its binary as spotify_player, with an underscore.

View raw text
## Summary

On aarch64, the Omarchy menu offers package installs that can never succeed, and the floating-terminal wrapper reports `Done!` when they fail. Together these produce a silent infinite loop: the user picks "Install → Service → Spotify", sees `Done!`, and Spotify is still not installed — every time, with no indication anything went wrong.

Two separate defects, filed together because the second is what makes the first invisible. Happy to split them if you'd prefer.

---

### Bug 1 — menu offers installs that are impossible on the running architecture

`omarchy-menu.jsonc` gates the Spotify entry purely on whether the package is present:

```jsonc
"install.service.spotify": {
  "icon":"󰓇","label":"Spotify",
  "when":"! omarchy-pkg-present spotify",
  "action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-service-spotify"
}
```

`spotify` is x86_64-only — the AUR PKGBUILD is `arch=('x86_64')` and its source is an `amd64` .deb from `repository.spotify.com`. On aarch64 it is simply not in any repo:

```
$ pacman -Si spotify
error: package 'spotify' was not found
```

So `omarchy-install-service-spotify` fails at `omarchy-pkg-add spotify`, `set -e` aborts the script before the `setsid uwsm-app -- /usr/bin/spotify` line, the package is never installed, the `when` guard stays true, and the entry is offered again forever.

**This is not Spotify-specific.** Auditing every `omarchy-install-service-*` entry against the aarch64 repos:

| Service | Package | Available on aarch64 |
|---|---|---|
| spotify | `spotify` | **no** |
| dropbox | `dropbox`, `dropbox-cli`, `nautilus-dropbox`, `libappindicator-gtk3` | **no** |
| signal | `signal-desktop` | yes |
| tailscale | `tailscale` | yes |
| nordvpn | `nordvpn-bin` | yes |
| once | `once-bin` | yes |

Dropbox has exactly the same failure mode. There is currently no architecture gating anywhere in the menu — `grep -c 'uname\|x86_64\|aarch64' omarchy-menu.jsonc` returns `0`.

Since `when` is arbitrary shell, a gate is cheap. Either make it architecture-aware, or better, gate on actual installability so it self-maintains:

```jsonc
"when":"! omarchy-pkg-present spotify && pacman -Si spotify &>/dev/null"
```

### Bug 2 — the presentation wrapper reports success for failed commands

`omarchy-launch-floating-terminal-with-presentation`:

```bash
presentation_script="omarchy-show-logo; $cmd; if (( \$? != 130 )); then omarchy-show-done; fi"
```

`omarchy-show-done` prints a green `● Done!` for **every** exit status except `130` (Ctrl-C). A command that fails with exit 1 is presented identically to one that succeeded. That is what turns Bug 1 from an obvious error into a mystery — the pacman error does scroll past above the prompt, but the last thing on screen is a green `Done!`.

Suggested fix — branch on the status rather than only excluding `130`:

```bash
presentation_script="omarchy-show-logo; $cmd; status=\$?; if (( status == 130 )); then :; elif (( status == 0 )); then omarchy-show-done; else omarchy-show-failed \$status; fi"
```

---

## Steps to reproduce

On any aarch64 Omarchy install:

1. `SUPER + SPACE`, type `spotify`, select **Install → Service → Spotify**
2. Enter the sudo password
3. Observe the green `Done!`
4. `pacman -Q spotify` → `error: package 'spotify' was not found`
5. Repeat from step 1 — the entry is still offered, with the identical outcome

## Expected

Either the entry is not offered on an architecture where the package cannot be installed, or the install failure is surfaced plainly instead of being reported as `Done!`.

## Actual

The install fails silently and the menu entry loops forever.

## System

| | |
|---|---|
| Omarchy | `4.0.1.r6114.g1e06f6fa6bec-1` |
| Kernel | `7.2.0-1-aarch64-ARCH` |
| Arch | `aarch64` (Apple Silicon, virtualised) |
| Hyprland | `0.56.1` |
| Repos | `core extra alarm aur` |

## Side note

For anyone landing here looking for Spotify on aarch64: the web player is not a workaround either, since there is no Widevine CDM for `Linux_aarch64` in either Chromium (the ALARM build ships none) or Firefox (Mozilla's GMP service offers only OpenH264 for that platform). The working options are the native librespot-based clients in `extra` — `spotify-player` or `ncspot` — both of which require Spotify Premium. Note that the `spotify-player` package installs its binary as `spotify_player`, with an underscore.

Also reported as

This defect is tracked under R-623 (filed Sep 13, 2026). 2 other reports describe the same defect.

Earliest report of this defect: R-1384 (filed Aug 27, 2026).

  1. Sep 13, 2026R-623 · this report— tracked here
  2. ·Decided by agents · verified

    Open upstream (reopened after an earlier close).

  3. ·Decided by agents · verified

    Open upstream.

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

  • Related PRpr/11691· confirmed
  • Related PRpr/12932· confirmed
  • Related PRpr/11025· 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: partly in the audited area (menu)
  • Decided by agents · verified: matches no known issue

The outcome (valid, duplicate, not a bug, …) is not decided yet.