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.
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
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?
- 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
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 foundSo 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:
"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:
SUPER + SPACE, typespotify, select Install → Service → Spotify- Enter the sudo password
- Observe the green
Done! pacman -Q spotify→error: package 'spotify' was not found- 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.
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).
- Sep 13, 2026R-623 · this report— tracked here
- Aug 27, 2026Dictation installer offers x86-only voxtype-bin on Apple Silicon, making Voxtype uninstallable R-1384·Decided by agents · verified
Open upstream (reopened after an earlier close).
- ·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.