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-dev does not install 05-omarchy-passwordless-revoke.hook, so no passwordless sudo grant can ever be published
Reported by mxhectorvega · filed Sep 29, 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
What happens
The menu entry Toggle passwordless sudo (and omarchy sudo passwordless) always ends with:
Toggle passwordless sudo...
[sudo] password for <user>:
⚠️ WARNING: ... 15 minutes ...
[sudo] password for <user>:
● Failed (exit code 1)!Two prompts are accepted (so __status works and correctly reports 3/inactive), __enable then exits 1 and publishes nothing. Before #13454 the failure was completely silent; with #13454 the interface names the missing file, but the grant still cannot be published.
Cause
bin/omarchy-sudo-passwordless refuses to publish a grant unless its revocation hook is installed:
readonly PACKAGE_HOOK=/usr/share/libalpm/hooks/05-omarchy-passwordless-revoke.hook # line 29
verify_boot_cleanup() { ...
verify_root_path "$PACKAGE_HOOK" || return 1 # line 214That hook is not shipped by the installed package, and nothing else installs it either:
$ pacman -Q omarchy-dev
omarchy-dev 4.0.0.r6688.ge332dc9-1
$ pacman -Ql omarchy-dev | grep libalpm
omarchy-dev /usr/share/libalpm/
omarchy-dev /usr/share/libalpm/hooks/
omarchy-dev /usr/share/libalpm/hooks/00-omarchy-update-guard.hook
omarchy-dev /usr/share/libalpm/hooks/10-omarchy-hyprland-reload-pause.hook
omarchy-dev /usr/share/libalpm/hooks/90-omarchy-hyprland-reload-resume.hook
$ pacman -Qkk omarchy-dev
omarchy-dev: 1867 total files, 0 altered files # the package is complete *as built*
$ pacman -Qo /usr/share/libalpm/hooks/05-omarchy-passwordless-revoke.hook
error: No package owns /usr/share/libalpm/hooks/05-omarchy-passwordless-revoke.hookdefault/libalpm/hooks/05-omarchy-passwordless-revoke.hook exists in the source tree (added by a6385e60, an ancestor of current quattro), and docs/file-layout.md states the mapping:
default/libalpm/hooks/*.hook ──► omarchy /usr/share/libalpm/hooks/*.hookNothing in bin/, install/, or migrations/ copies it into place either (grep -rn 'libalpm/hooks\|PACKAGE_HOOK' bin/ migrations/ install/ only matches the script's own constant), so verify_boot_cleanup returns 1 on a normal install and no passwordless grant can ever be published. The file is present only as /usr/share/omarchy/default/libalpm/hooks/05-... (shipped by omarchy-settings-dev), which is a source copy, not the path the check requires.
Workaround
sudo install -o root -g root -m 0644 \
/usr/share/omarchy/default/libalpm/hooks/05-omarchy-passwordless-revoke.hook \
/usr/share/libalpm/hooks/05-omarchy-passwordless-revoke.hookWith that file in place, all three verify_boot_cleanup preconditions pass (removal blocker absent, boot cleanup rule valid, hook present) and __enable proceeds.
Environment
omarchy-dev/omarchy-settings-dev4.0.0.r6688.ge332dc9-1,quattrodev channel, dev-linked checkout at~/omarchy(checkout and installed copies of the script are byte-identical).- Locale
es_MX.UTF-8(unrelated to this bug, but note the CJK/stat %Flocale reports elsewhere).
View raw text
## What happens
The menu entry **Toggle passwordless sudo** (and `omarchy sudo passwordless`) always ends with:
```
Toggle passwordless sudo...
[sudo] password for <user>:
⚠️ WARNING: ... 15 minutes ...
[sudo] password for <user>:
● Failed (exit code 1)!
```
Two prompts are accepted (so `__status` works and correctly reports `3`/inactive), `__enable` then exits 1 and **publishes nothing**. Before #13454 the failure was completely silent; with #13454 the interface names the missing file, but the grant still cannot be published.
## Cause
`bin/omarchy-sudo-passwordless` refuses to publish a grant unless its revocation hook is installed:
```
readonly PACKAGE_HOOK=/usr/share/libalpm/hooks/05-omarchy-passwordless-revoke.hook # line 29
verify_boot_cleanup() { ...
verify_root_path "$PACKAGE_HOOK" || return 1 # line 214
```
That hook is **not shipped by the installed package**, and nothing else installs it either:
```
$ pacman -Q omarchy-dev
omarchy-dev 4.0.0.r6688.ge332dc9-1
$ pacman -Ql omarchy-dev | grep libalpm
omarchy-dev /usr/share/libalpm/
omarchy-dev /usr/share/libalpm/hooks/
omarchy-dev /usr/share/libalpm/hooks/00-omarchy-update-guard.hook
omarchy-dev /usr/share/libalpm/hooks/10-omarchy-hyprland-reload-pause.hook
omarchy-dev /usr/share/libalpm/hooks/90-omarchy-hyprland-reload-resume.hook
$ pacman -Qkk omarchy-dev
omarchy-dev: 1867 total files, 0 altered files # the package is complete *as built*
$ pacman -Qo /usr/share/libalpm/hooks/05-omarchy-passwordless-revoke.hook
error: No package owns /usr/share/libalpm/hooks/05-omarchy-passwordless-revoke.hook
```
`default/libalpm/hooks/05-omarchy-passwordless-revoke.hook` exists in the source tree (added by a6385e60, an ancestor of current `quattro`), and `docs/file-layout.md` states the mapping:
```
default/libalpm/hooks/*.hook ──► omarchy /usr/share/libalpm/hooks/*.hook
```
Nothing in `bin/`, `install/`, or `migrations/` copies it into place either (`grep -rn 'libalpm/hooks\|PACKAGE_HOOK' bin/ migrations/ install/` only matches the script's own constant), so `verify_boot_cleanup` returns 1 on a normal install and **no passwordless grant can ever be published**. The file is present only as `/usr/share/omarchy/default/libalpm/hooks/05-...` (shipped by `omarchy-settings-dev`), which is a source copy, not the path the check requires.
## Workaround
```
sudo install -o root -g root -m 0644 \
/usr/share/omarchy/default/libalpm/hooks/05-omarchy-passwordless-revoke.hook \
/usr/share/libalpm/hooks/05-omarchy-passwordless-revoke.hook
```
With that file in place, all three `verify_boot_cleanup` preconditions pass (removal blocker absent, boot cleanup rule valid, hook present) and `__enable` proceeds.
## Environment
- `omarchy-dev`/`omarchy-settings-dev` `4.0.0.r6688.ge332dc9-1`, `quattro` dev channel, dev-linked checkout at `~/omarchy` (checkout and installed copies of the script are byte-identical).
- Locale `es_MX.UTF-8` (unrelated to this bug, but note the CJK/`stat %F` locale reports elsewhere).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 20:07 UTC