--uninstall undoes what punktfunk-omarchy setup did, and the detection matrix grows an Omarchy row #434

Merged
enricobuehler merged 1 commits from worktree-omarchy-installer-gaps into main 2026-08-28 21:45:57 +00:00
1 Commits
Author SHA1 Message Date
enricobuehler 51f64382ec --uninstall undoes what punktfunk-omarchy setup did, and the detection matrix grows an Omarchy row
ci / web (pull_request) Successful in 57s
ci / docs-site (pull_request) Successful in 1m0s
ci / docs-drift (pull_request) Successful in 55s
ci / bun-nix (pull_request) Successful in 1m23s
apple / swift (pull_request) Successful in 2m11s
apple / distribute (pull_request) Skipped
apple / screenshots (pull_request) Skipped
ci / rust-arm64 (pull_request) Successful in 2m26s
installer-smoke / smoke (arch) (pull_request) Successful in 1m24s
installer-smoke / smoke (fedora-44) (pull_request) Successful in 2m2s
installer-smoke / smoke (debian-13) (pull_request) Successful in 3m19s
ci / rust (pull_request) Successful in 7m48s
android / android (pull_request) Failing after 12m41s
PR #428 taught scripts/install.sh about Omarchy: detection, the `-Sy` then `-S` split that gets past
the libalpm guard, and the hand-off to `punktfunk-omarchy setup`. It wired the INSTALL path only.

`--uninstall` removed the packages but left everything `punktfunk-omarchy setup` had put OUTSIDE
them: tagged ufw rules, the user-unit drop-in, the app-menu entry, hooks.json, and the
`custom_picker_binary` takeover in xdph.conf — the last of which keeps pointing a live compositor at
a picker shim that is no longer installed. `punktfunk-omarchy remove` is the reverse and is
idempotent, but it ships IN the host package, so it has to run before pacman takes it away. Its
guard carries the `|| [ "$DRY" = 1 ]` that step 1b already uses, so the dry-run matrix can see it on
a machine that has never had the package.

Gate 7's matrix had no Omarchy row at all, which is why this went unnoticed; its own comment says a
fix to the installer adds its case there. Three added — the split install, the setup hand-off, and
the uninstall — each proved non-vacuous by reverting the code it covers and watching the gate go red.

The first of those three now covers a fix that reached main separately: `run()`'s non-interactive
rewrite matched only `^sudo pacman -Syu `, so `--yes` and every terminal-less `curl | sh` asked
"Proceed with installation?" with stdin on /dev/null and died. The `-S ` rule that fixes it landed in
the --channel switch work while this branch was open. The row keeps it from regressing.
2026-08-28 23:02:57 +02:00