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.
tailscale bar widget and lock/menu plugins break when 'which' is not installed
Reported by Octadira · filed Sep 17, 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
Problem
The Omarchy bar's Tailscale widget shows "Not installed" (Tailscale CLI missing) even though tailscale is installed and active, because the plugin probes for the binary with which tailscale, and the which package is not installed on the system.
Root cause
omarchy does not depend on the which package, but its shell plugins call system which:
/usr/share/omarchy/shell/plugins/panels/tailscale/Service.qml—whichProcess.command = ["which", "tailscale"](line 155)/usr/share/omarchy/shell/plugins/lock/Service.qml— also invokeswhich/usr/share/omarchy/shell/plugins/menu/MenuModel.js— invokeswhich
On a minimal/arch install without the which package (a small but optional package), which tailscale exits nonzero / the shell reports "command not found", so the widget concludes Tailscale is not installed and hides the connected state.
Steps to reproduce
- Fresh Omarchy install that does not include the
whichpackage. - Install and run Tailscale normally (
tailscale statusworks fine from the terminal). - Observe the bar Tailscale widget: it reports not installed / CLI missing despite Tailscale running.
Verified on: Omarchy 4.0.3-1, Arch Linux (aarch64).
Expected
The widget detects the installed CLI and shows connected status, or the environment is guaranteed to provide which (either add which as a dependency, or switch the probes to the always-available command -v builtin).
Fix suggestion
Replace which probes with command -v (POSIX shell builtin, always present), or add which to the package dependencies.
View raw text
## Problem The Omarchy bar's Tailscale widget shows "Not installed" (Tailscale CLI missing) even though `tailscale` is installed and active, because the plugin probes for the binary with `which tailscale`, and the `which` package is not installed on the system. ## Root cause `omarchy` does not depend on the `which` package, but its shell plugins call system `which`: - `/usr/share/omarchy/shell/plugins/panels/tailscale/Service.qml` — `whichProcess.command = ["which", "tailscale"]` (line 155) - `/usr/share/omarchy/shell/plugins/lock/Service.qml` — also invokes `which` - `/usr/share/omarchy/shell/plugins/menu/MenuModel.js` — invokes `which` On a minimal/arch install without the `which` package (a small but optional package), `which tailscale` exits nonzero / the shell reports "command not found", so the widget concludes Tailscale is not installed and hides the connected state. ## Steps to reproduce 1. Fresh Omarchy install that does not include the `which` package. 2. Install and run Tailscale normally (`tailscale status` works fine from the terminal). 3. Observe the bar Tailscale widget: it reports not installed / CLI missing despite Tailscale running. Verified on: Omarchy 4.0.3-1, Arch Linux (aarch64). ## Expected The widget detects the installed CLI and shows connected status, or the environment is guaranteed to provide `which` (either add `which` as a dependency, or switch the probes to the always-available `command -v` builtin). ## Fix suggestion Replace `which` probes with `command -v` (POSIX shell builtin, always present), or add `which` to the package dependencies.
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
Not linked to any known issue, other report or change yet.
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 02:22 UTC