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.
omarchy install terminal <pkg> reports failure but still mutates xdg-terminals.list and copies config when package is missing on aarch64
Reported by ozz1ee-dev · filed Aug 31, 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?
- AreaOutside the audited area· 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
Bug
Running omarchy install terminal ghostty on aarch64 prints "Failed to install ghostty" but still:
- Copies
/usr/share/omarchy/config/ghostty/into~/.config/ghostty/ - Overwrites
~/.config/xdg-terminals.listso it points atcom.mitchellh.ghostty.desktop
The package was never installed (pacman -Q | grep ghostty is empty afterwards, no ghostty binary on PATH), but xdg-terminal-exec and any Hyprland keybinding that resolves the default terminal now look for ghostty and fail to launch a terminal.
Steps to reproduce
- Use Omarchy on aarch64 (Apple Silicon). Ghostty is not in the aarch64 repos and there is no
ghosttypackage in AUR (aur/ghosttydoes not exist; only derivatives likeghostty-git/ghostty-nightly-bin). - Run
omarchy install terminal ghostty.
What happens
Installing ghostty...
Skipping 'ghostty': not available in the repos on this systemBut then the script silently:
- creates
~/.config/ghostty/(copied from/usr/share/omarchy/config/ghostty/) - rewrites
~/.config/xdg-terminals.listto:
com.mitchellh.ghostty.desktopThe user has no terminal they can launch and no package they can run.
Expected
When the package cannot be installed, omarchy install terminal should:
- Print the error and exit non-zero
- Leave ~/.config/xdg-terminals.list unchanged
- Leave ~/.config/<package>/ untouched
Root cause
omarchy install terminal (in /usr/bin/omarchy-install-terminal) gates the config-copy and xdg-terminals.list rewrite on if omarchy-pkg-add $package; then. But omarchy-pkg-add (in /usr/bin/omarchy-pkg-add) does exit 0 when none of the requested packages are installable:
to_install=()
for pkg in "$@"; do
if pacman -Q "$pkg" &>/dev/null || pacman -Si "$pkg" &>/dev/null; then
to_install+=("$pkg")
else
echo -e "\033[33mSkipping '$pkg': not available in the repos on this system\033[0m" >&2
fi
done
((${#to_install[@]})) || exit 0So the if branch fires, even though no package was actually installed. The script needs a separate "did anything actually get installed?" check (e.g. omarchy-pkg-present $package after the call, or a non-zero exit from omarchy-pkg-add when nothing was installable).
Environment
- Omarchy 4.0.1-2
- aarch64 (Apple M1, Icestorm)
- Kernel: Linux 7.1.6-1-1-ARCH
View raw text
## Bug
Running `omarchy install terminal ghostty` on aarch64 prints "Failed to install ghostty" but still:
1. Copies `/usr/share/omarchy/config/ghostty/` into `~/.config/ghostty/`
2. Overwrites `~/.config/xdg-terminals.list` so it points at `com.mitchellh.ghostty.desktop`
The package was never installed (`pacman -Q | grep ghostty` is empty afterwards, no `ghostty` binary on PATH), but `xdg-terminal-exec` and any Hyprland keybinding that resolves the default terminal now look for ghostty and fail to launch a terminal.
## Steps to reproduce
1. Use Omarchy on aarch64 (Apple Silicon). Ghostty is not in the aarch64 repos and there is no `ghostty` package in AUR (`aur/ghostty` does not exist; only derivatives like `ghostty-git` / `ghostty-nightly-bin`).
2. Run `omarchy install terminal ghostty`.
## What happens
```
Installing ghostty...
Skipping 'ghostty': not available in the repos on this system
```
But then the script silently:
- creates `~/.config/ghostty/` (copied from `/usr/share/omarchy/config/ghostty/`)
- rewrites `~/.config/xdg-terminals.list` to:
```
com.mitchellh.ghostty.desktop
```
The user has no terminal they can launch and no package they can run.
## Expected
When the package cannot be installed, `omarchy install terminal` should:
- Print the error and exit non-zero
- Leave `~/.config/xdg-terminals.list` unchanged
- Leave `~/.config/<package>/` untouched
## Root cause
`omarchy install terminal` (in `/usr/bin/omarchy-install-terminal`) gates the config-copy and `xdg-terminals.list` rewrite on `if omarchy-pkg-add $package; then`. But `omarchy-pkg-add` (in `/usr/bin/omarchy-pkg-add`) does `exit 0` when none of the requested packages are installable:
```bash
to_install=()
for pkg in "$@"; do
if pacman -Q "$pkg" &>/dev/null || pacman -Si "$pkg" &>/dev/null; then
to_install+=("$pkg")
else
echo -e "\033[33mSkipping '$pkg': not available in the repos on this system\033[0m" >&2
fi
done
((${#to_install[@]})) || exit 0
```
So the `if` branch fires, even though no package was actually installed. The script needs a separate "did anything actually get installed?" check (e.g. `omarchy-pkg-present $package` after the call, or a non-zero exit from `omarchy-pkg-add` when nothing was installable).
## Environment
- Omarchy 4.0.1-2
- aarch64 (Apple M1, Icestorm)
- Kernel: Linux 7.1.6-1-1-ARCHValidation
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
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.
- Out of scopeDecided by agents · verified · 2026-10-09 10:16 UTC