From 9be4363f4b879e743855ff1ee5698e0dea8b0b96 Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Mon, 18 May 2026 17:13:39 +0100 Subject: [PATCH] chore(audit): triage webapp/tui/voxtype install-remove pairs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pillar 3 Phase B, batch 3 — Batch A of the unused? clusters. Deleted two dead webapp URI handlers: - `nomarchy-webapp-handler-hey` - `nomarchy-webapp-handler-zoom` Neither was registered as a MimeType handler anywhere — a grep across `*.desktop` files in `core/`, `features/`, `themes/`, `installer/`, and `hosts/` returned zero matches. Without a `.desktop` registration the system never routes `mailto:`/`zoom:`/`zoomus:` URIs to them, so the handlers were unreachable code. Kept the six remaining install/remove pairs (they're real CLI tools, just unwired into any menu) and surfaced them in `SKILL.md` "Common Tasks" so AI assistants can discover them on user request and the audit tags them `kept`: - Custom App Launchers: webapp-{install,remove,remove-all}, tui-{install,remove,remove-all} - Voice dictation: voxtype-{install,remove,status} Menu-wiring these (e.g. a "Setup → Apps" submenu in nomarchy-menu) is a separate Pillar 6 onboarding job, not scoped here. Regenerated `docs/SCRIPTS.md` — script count 166 → 164, `unused?` 21 → 13. Logged in `docs/ROADMAP.md` Shipped. Co-Authored-By: Claude Opus 4.7 --- core/home/config/nomarchy-skill/SKILL.md | 23 ++++++++++++++++++ docs/ROADMAP.md | 1 + docs/SCRIPTS.md | 24 +++++++++---------- .../scripts/utils/nomarchy-webapp-handler-hey | 12 ---------- .../utils/nomarchy-webapp-handler-zoom | 21 ---------------- 5 files changed, 35 insertions(+), 46 deletions(-) delete mode 100755 features/scripts/utils/nomarchy-webapp-handler-hey delete mode 100755 features/scripts/utils/nomarchy-webapp-handler-zoom diff --git a/core/home/config/nomarchy-skill/SKILL.md b/core/home/config/nomarchy-skill/SKILL.md index 2fb8193..d7f51a9 100644 --- a/core/home/config/nomarchy-skill/SKILL.md +++ b/core/home/config/nomarchy-skill/SKILL.md @@ -315,6 +315,29 @@ nomarchy-system-reboot # Reboot **IMPORTANT:** Always run `nomarchy-debug` with `--no-sudo --print` flags to avoid interactive sudo prompts that will hang the terminal. +### Custom App Launchers + +```bash +nomarchy-webapp-install # Add a web app launcher (interactive) +nomarchy-webapp-remove [name...] # Remove web apps (interactive if no name) +nomarchy-webapp-remove-all # Bulk-remove every web app +nomarchy-tui-install # Add a TUI launcher for a terminal program +nomarchy-tui-remove [name...] # Remove TUI launchers +nomarchy-tui-remove-all # Bulk-remove every TUI launcher +``` + +Both families write `.desktop` files into `~/.local/share/applications/` so they appear in the app launcher (walker / rofi). + +### Voice dictation (Voxtype) + +```bash +nomarchy-voxtype-install # Install Voxtype + AI model (~150MB) +nomarchy-voxtype-remove # Uninstall Voxtype +nomarchy-voxtype-status # Running state (also shown in waybar) +``` + +Toggle dictation with `SUPER+CTRL+X` after install. + ## Troubleshooting ```bash diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index c644ae1..7cc3a0c 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -121,6 +121,7 @@ Each PR description should reference the row(s) in `docs/SCRIPTS.md` it closes, (Move items here when they land — keep them brief, link the commit/PR.) +- _2026-05-18_ — Pillar 3 Phase B: webapp/tui/voxtype install-remove pair triage. Deleted two dead webapp URI handlers (`nomarchy-webapp-handler-hey`, `nomarchy-webapp-handler-zoom`) — no `.desktop` MimeType registration anywhere routed `mailto:`/`zoom:` URIs to them, so the handlers could never fire. Surfaced six useful CLI tools in `SKILL.md` "Common Tasks" so they're discoverable by AI assistants and tagged `kept` by the audit: `nomarchy-webapp-{remove,remove-all}`, `nomarchy-tui-{remove,remove-all}`, `nomarchy-voxtype-{install,remove}`. Script count 166 → 164; `unused?` 21 → 13. - _2026-05-18_ — Pillar 3 Phase B: dead-code sweep (NixOS-irrelevant Omarchy ports). Deleted five scripts that duplicated NixOS-native facilities or referenced infrastructure Nomarchy doesn't ship: `nomarchy-rollback` (boot-menu generations + `nixos-rebuild rollback` already cover this), `nomarchy-snapshot` (used `snapper`; impermanence and BTRFS subvolumes are the Nomarchy answer), `nomarchy-migrate-state` (one-shot pre-unification migration, no current callers), `nomarchy-config-direct-boot` (added an EFI entry for a UKI we never build), and `nomarchy-npx-install` (Arch idiom — `nix-shell -p nodejs` is the NixOS path). Kept `nomarchy-build-iso` and `nomarchy-build-live-iso` and surfaced them in README §2 so the audit tags them `kept`. Script count 171 → 166. - _2026-05-18_ — Pillar 3 Phase B: missing-references triage. (1) Wrote `themes/engine/scripts/nomarchy-theme-next` so `SKILL.md`'s documented "cycle to next theme" command resolves; (2) scrubbed three stale `nomarchy-dev-*` references from `core/home/config/nomarchy-skill/SKILL.md`; (3) added a line-context filter to both `nomarchy-docs-scripts` generators that drops `nomarchy-*` tokens appearing in Nix `pname`/derivation idents, `/tmp/` & `/etc/sudoers.d/` paths, `nixosConfigurations.*` / `packages.*` flake outputs, `mktemp -t` prefixes, systemd unit vars, `./result/bin/run-` binaries, and `docker` container references; (4) added a small token-level denylist for five residual non-script identifiers (`nomarchy-plymouth`, `nomarchy-sddm-theme`, `nomarchy-live`, `nomarchy-rev`, `nomarchy-windows`) that survive line filtering. `docs/SCRIPTS.md` "Missing references" section is now empty (was 15). - _2026-05-04_ — Pillar 8: Distro Branding. (1) Scrubbed remaining "Omarchy" and "Spirit of Omarchy" references from README, scripts, and welcome wizard; (2) Updated `nomarchy-welcome` banner and `nomarchy-version` codename ("Sovereign"); (3) Verified existing `core/system/branding.nix` handles OS-release and bootloader labels; (4) Confirmed SDDM and Plymouth metadata are already Nomarchy-branded. diff --git a/docs/SCRIPTS.md b/docs/SCRIPTS.md index dbe6a8c..54e961a 100644 --- a/docs/SCRIPTS.md +++ b/docs/SCRIPTS.md @@ -24,7 +24,7 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, - `delete-dead` — Phase B verdict: remove and update callers. - `stub-with-notify` — Phase B verdict: temporary `notify-send` stub. -## Scripts (166) +## Scripts (164) | Script | Location | Callers | Status | Notes | | --- | --- | --- | --- | --- | @@ -87,7 +87,7 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, | `nomarchy-launch-screensaver` | `features/scripts/utils` | features/desktop/idle.nix,features/scripts/utils/nomarchy-menu | `kept` | | | `nomarchy-launch-tui` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/utilities.conf,features/desktop/hyprland/config/bindings.conf, +2 more | `kept` | | | `nomarchy-launch-walker` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/clipboard.conf,core/home/config/nomarchy/default/hypr/bindings/utilities.conf, +4 more | `kept` | | -| `nomarchy-launch-webapp` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/plain-bindings.conf,features/desktop/hyprland/config/bindings.conf, +7 more | `kept` | | +| `nomarchy-launch-webapp` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/plain-bindings.conf,features/desktop/hyprland/config/bindings.conf, +5 more | `kept` | | | `nomarchy-launch-wifi` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/utilities.conf,core/home/config/nomarchy/default/mako/core.ini, +4 more | `kept` | | | `nomarchy-lock-screen` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/utilities.conf,core/home/config/nomarchy/extensions/menu.sh, +3 more | `kept` | | | `nomarchy-manual` | `features/scripts/utils` | core/branding/about.txt,features/scripts/utils/nomarchy-menu, +1 more | `kept` | | @@ -170,9 +170,9 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, | `nomarchy-toggle-screensaver` | `features/scripts/utils` | features/scripts/utils/nomarchy-menu | `kept` | | | `nomarchy-toggle-suspend` | `core/system/scripts` | features/scripts/utils/nomarchy-menu | `kept` | | | `nomarchy-toggle-waybar` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/utilities.conf,core/home/config/nomarchy-skill/SKILL.md, +1 more | `kept` | | -| `nomarchy-tui-install` | `features/scripts/utils` | features/scripts/utils/nomarchy-tui-remove-all | `kept` | | -| `nomarchy-tui-remove` | `features/scripts/utils` | — | `unused?` | | -| `nomarchy-tui-remove-all` | `features/scripts/utils` | — | `unused?` | | +| `nomarchy-tui-install` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-tui-remove-all | `kept` | | +| `nomarchy-tui-remove` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md | `kept` | | +| `nomarchy-tui-remove-all` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md | `kept` | | | `nomarchy-tz-select` | `core/system/scripts` | features/desktop/waybar/config/config.jsonc,features/scripts/utils/nomarchy-menu, +2 more | `kept` | | | `nomarchy-update` | `core/system/scripts` | core/home/config/nomarchy/default/mako/core.ini,core/home/config/nomarchy-skill/SKILL.md, +3 more | `kept` | | | `nomarchy-update-available` | `features/scripts/utils` | features/desktop/waybar/config/config.jsonc,features/desktop/waybar/themes/summer-night/config.jsonc | `kept` | | @@ -181,16 +181,14 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, | `nomarchy-upload-log` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-debug | `kept` | | | `nomarchy-version` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-debug | `kept` | | | `nomarchy-voxtype-config` | `features/scripts/utils` | features/desktop/waybar/config/config.jsonc,features/desktop/waybar/themes/summer-night/config.jsonc | `kept` | | -| `nomarchy-voxtype-install` | `features/scripts/utils` | — | `unused?` | | +| `nomarchy-voxtype-install` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md | `kept` | | | `nomarchy-voxtype-model` | `features/scripts/utils` | features/desktop/waybar/config/config.jsonc,features/desktop/waybar/themes/summer-night/config.jsonc | `kept` | | -| `nomarchy-voxtype-remove` | `features/scripts/utils` | — | `unused?` | | -| `nomarchy-voxtype-status` | `features/scripts/utils` | features/desktop/waybar/config/config.jsonc,features/desktop/waybar/themes/summer-night/config.jsonc | `kept` | | +| `nomarchy-voxtype-remove` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md | `kept` | | +| `nomarchy-voxtype-status` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md,features/desktop/waybar/config/config.jsonc, +1 more | `kept` | | | `nomarchy-wallpaper` | `features/scripts/utils` | bin/utils/nomarchy-docs-scripts,core/home/config/nomarchy/default/hypr/autostart.conf, +2 more | `kept` | | -| `nomarchy-webapp-handler-hey` | `features/scripts/utils` | — | `unused?` | | -| `nomarchy-webapp-handler-zoom` | `features/scripts/utils` | — | `unused?` | | -| `nomarchy-webapp-install` | `features/scripts/utils` | features/scripts/utils/nomarchy-webapp-remove-all | `kept` | | -| `nomarchy-webapp-remove` | `features/scripts/utils` | — | `unused?` | | -| `nomarchy-webapp-remove-all` | `features/scripts/utils` | — | `unused?` | | +| `nomarchy-webapp-install` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-webapp-remove-all | `kept` | | +| `nomarchy-webapp-remove` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md | `kept` | | +| `nomarchy-webapp-remove-all` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md | `kept` | | | `nomarchy-welcome` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/autostart.conf | `kept` | | | `nomarchy-wifi-powersave` | `core/system/scripts` | features/scripts/utils/nomarchy-sys-update,installer/install.sh | `kept` | | | `nomarchy-windows-vm` | `features/scripts/utils` | — | `unused?` | | diff --git a/features/scripts/utils/nomarchy-webapp-handler-hey b/features/scripts/utils/nomarchy-webapp-handler-hey deleted file mode 100755 index 5c5f753..0000000 --- a/features/scripts/utils/nomarchy-webapp-handler-hey +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -e -url="$1" -web_url="https://app.hey.com" - -# Handle mailto: URLs -if [[ $url =~ ^mailto: ]]; then - email=$(echo "$url" | sed 's/mailto://') - web_url="https://app.hey.com/messages/new?to=$email" -fi - -exec nomarchy-launch-webapp "$web_url" diff --git a/features/scripts/utils/nomarchy-webapp-handler-zoom b/features/scripts/utils/nomarchy-webapp-handler-zoom deleted file mode 100755 index 0e56105..0000000 --- a/features/scripts/utils/nomarchy-webapp-handler-zoom +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -set -e - -url="$1" -web_url="https://app.zoom.us/wc/home" - -if [[ $url =~ ^zoom(mtg|us):// ]]; then - confno=$(echo "$url" | sed -n 's/.*[?&]confno=\([^&]*\).*/\1/p') - - if [[ -n $confno ]]; then - pwd=$(echo "$url" | sed -n 's/.*[?&]pwd=\([^&]*\).*/\1/p') - - if [[ -n $pwd ]]; then - web_url="https://app.zoom.us/wc/join/$confno?pwd=$pwd" - else - web_url="https://app.zoom.us/wc/join/$confno" - fi - fi -fi - -exec nomarchy-launch-webapp "$web_url"