diff --git a/AGENTS.md b/AGENTS.md index 2dc1de5..f905e95 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -94,19 +94,16 @@ knowledge base. Those pages own their facts; this is only the pointer. ### Issue tracker -Work items are Gitea issues on `dank/command-center` (Dankclaw, -`192.168.0.143:3000`) — no `gh`, no `tea`. See -[`omp-docs/skills/issue-tracker.md`](omp-docs/skills/issue-tracker.md). +See [`omp-docs/skills/issue-tracker.md`](omp-docs/skills/issue-tracker.md). ### Triage labels -The five canonical roles, each label string equal to its name. See -[`omp-docs/skills/triage-labels.md`](omp-docs/skills/triage-labels.md). +See [`omp-docs/skills/triage-labels.md`](omp-docs/skills/triage-labels.md). ### Domain docs -Single-context, inside the existing knowledge base: `omp-docs/glossary.md` and -`omp-docs/decisions/`. See [`omp-docs/skills/domain-docs.md`](omp-docs/skills/domain-docs.md). +ADRs: `omp-docs/decisions/`. `omp-docs/glossary.md` is intentionally not created. +See [`omp-docs/skills/domain-docs.md`](omp-docs/skills/domain-docs.md). ## Secret gate (HARD rule) diff --git a/dotfiles/systemd-user/.config/systemd/user/swayidle-lock.service b/dotfiles/systemd-user/.config/systemd/user/swayidle-lock.service index 2bb987e..26af01e 100644 --- a/dotfiles/systemd-user/.config/systemd/user/swayidle-lock.service +++ b/dotfiles/systemd-user/.config/systemd/user/swayidle-lock.service @@ -1,5 +1,5 @@ [Unit] -Description=swayidle idle lock (locks via noctalia-shell IPC, suspends on lid) +Description=swayidle idle lock watcher (arms the idle lock via noctalia-shell IPC; suspend is covered by noctalia's sleep inhibitor) Documentation=https://github.com/swaywm/swayidle After=graphical-session.target # Restart together with the session, not merely at boot: this unit is wanted by diff --git a/omp-docs/decisions/index.md b/omp-docs/decisions/index.md index 9f3755e..b2232b0 100644 --- a/omp-docs/decisions/index.md +++ b/omp-docs/decisions/index.md @@ -1,8 +1,8 @@ # Architecture decision records Decisions this repo has made and will not silently revisit. One file per -decision, named `NNN-.md`, listed here — an unlisted page fails `kb-lint` -and does not exist as far as any agent is concerned. +decision, named `NNN-.md`, listed here — an unlisted page fails +`scripts/kb-coverage.py` and does not exist as far as any agent is concerned. **No ADRs yet.** The first one lands the moment a decision stops being reversible. diff --git a/omp-docs/index.md b/omp-docs/index.md index 376e07a..9949b1b 100644 --- a/omp-docs/index.md +++ b/omp-docs/index.md @@ -57,8 +57,8 @@ search practices, open models, MCP. ## [Inventory](inventory/index.md) -Pre-pruning census of every userspace config on this box — the input for the -pruning session. +Per-file tracked-vs-box-only census of `~/.config` on blankpad — the input for the +dotfiles pruning/adoption session. ## [Decisions](decisions/index.md) diff --git a/omp-docs/inventory/index.md b/omp-docs/inventory/index.md index 49d5478..aa03f78 100644 --- a/omp-docs/inventory/index.md +++ b/omp-docs/inventory/index.md @@ -2,4 +2,4 @@ Census of all userspace program configuration on the workstation. -- [home-config-census.md](home-config-census.md) — Complete inventory of top-level dotfiles, ~/.config, ~/.local/share state, and special directories (~/.pi, ~/.omp) +- [home-config-census.md](home-config-census.md) — Per-file tracked-vs-box-only census of ~/.config on blankpad — the input for the dotfiles pruning/adoption session. diff --git a/omp-docs/references/okf-maintenance.md b/omp-docs/references/okf-maintenance.md index b361b3a..9100be3 100644 --- a/omp-docs/references/okf-maintenance.md +++ b/omp-docs/references/okf-maintenance.md @@ -38,7 +38,7 @@ happened, and the durable lesson. It is not a file manifest. A gate that gets an empty file list reports success. Law: a check MUST fail closed; a silently-passing gate is worse than none, because it buys the belief of safety. -Details: [secret gate](../tools/index.md). +Details: [secret gate](/tools/index.md). ``` **Rules:** @@ -58,8 +58,9 @@ Details: [secret gate](../tools/index.md). - ❌ Forgetting the entry — the change lands undocumented and the next agent rediscovers the failure the hard way. - ❌ Starting a second log in a subdirectory — the sprawl that makes logging useless. -- ❌ Invented absolute paths in links — links resolve relative to the page, and the - linter checks them. +- ❌ Invented paths in links — the RECOMMENDED form is an absolute bundle path + (`/tools/index.md`), resolved against the bundle root; the mistake is a path that + names no file there, and that is what the linter reports. - ❌ Re-expanding an old entry in place — the entry is a pointer; git is the transcript. --- diff --git a/omp-docs/tools/dotfiles-deploy.md b/omp-docs/tools/dotfiles-deploy.md index e558953..182c1df 100644 --- a/omp-docs/tools/dotfiles-deploy.md +++ b/omp-docs/tools/dotfiles-deploy.md @@ -1,14 +1,14 @@ --- type: reference title: Dotfiles deployment tier -description: How dotfiles/ packages become live configuration — stow-equivalent symlinks, host override packages, and the two laws about theme media and systemd enable symlinks. +description: How dotfiles/ packages become live configuration — deploy.sh modes, host override packages, and the tier's hard-won laws, from media and generated theme output to systemd enable/start semantics, dconf dumps, and idle-lock watcher triage. tags: - dotfiles - deployment - systemd - noctalia timestamp: 2026-10-20 -verified: 2026-10-20 +verified: 2026-10-21 --- # Dotfiles deployment tier @@ -54,8 +54,17 @@ checkout, `git rm --cached` on the branch notwithstanding. Restore on a fresh box: the library lives in `~/.local/share/noctalia/wallpapers/`, a path `deploy.sh` does not manage. Every filename is `wallhaven_.` and the ID is the -whole address — `curl -L -o "https://wallhaven.cc/w/"` into that directory puts -the set back. Losing it is an acceptable outcome; 80 MB per clone forever is not. +whole address — but `https://wallhaven.cc/w/` answers `text/html`, the web page, so +resolve the direct CDN URL through the API and download that: + +```bash +id=73g8xo # the wallhaven_ stem of any file in the set +url=$(curl -s "https://wallhaven.cc/api/v1/w/$id" | grep -o '"path":"[^"]*' | cut -d'"' -f4) +curl -L -o ~/.local/share/noctalia/wallpapers/"${url##*/}" "$url" +``` + +`data.path` already ends in `wallhaven_.`, so the filename keeps itself. Losing it +is an acceptable outcome; 80 MB per clone forever is not. ## Law: never `systemctl --user enable` a unit from a worktree diff --git a/omp-docs/tools/index.md b/omp-docs/tools/index.md index 91a202e..866b884 100644 --- a/omp-docs/tools/index.md +++ b/omp-docs/tools/index.md @@ -9,7 +9,7 @@ Configuration guides and reference material for installed software. Each tool ha * [applications](applications.md) — Default userspace applications on CachyOS with Niri — browsers, editor, terminal, file manager, audio, screenshots, gaming. * [cachyos](cachyos.md) — Arch-based rolling release with performance-optimized kernels, repositories, and gaming stack. Running on the workstation. * [comfyui](comfyui/index.md) — Node-based AI image generation engine on dankclaw. FLUX.2 klein 4B, CPU backend, systemd managed. -* [dotfiles-deploy](dotfiles-deploy.md) — How `dotfiles/` packages become live config: `deploy.sh` modes, host override packages, and why theme media and worktree-enabled units are traps. +* [dotfiles-deploy](dotfiles-deploy.md) — How `dotfiles/` packages become live config: `deploy.sh` modes, host override packages, and the tier's hard-won laws, from media and generated theme output to systemd enable/start semantics, dconf dumps, and idle-lock watcher triage. * [ghostty](ghostty/index.md) — GPU-accelerated terminal emulator with extensive configuration, keybindings, and shaders. * [gitea](gitea/index.md) — Private Git hosting on dankclaw. Quadlet-managed containers: Gitea, PostgreSQL, Caddy. * [handy](handy.md) — Offline speech-to-text transcription with WebKitGTK backend and Tauri v2 UI. diff --git a/packages/common.pkgs b/packages/common.pkgs index 470f2a5..cb4c7bd 100644 --- a/packages/common.pkgs +++ b/packages/common.pkgs @@ -18,8 +18,8 @@ btop # system / fleet tooling yay # AUR helper bootstrap: ships in the cachyos repo; aur.pkgs installs need it -git-lfs # LFS smudge/clean for tracked wallpapers (see .gitattributes) -swayidle # idle lock + lid policy via swayidle-lock.service unit +git-lfs # .gitattributes still routes image types through the LFS filter; no image is tracked since 2026-10-20 +swayidle # idle lock watcher via swayidle-lock.service; suspend locking is noctalia's sleep inhibitor # desktop apps flameshot # screenshot tool; bound to CTRL+Shift+1/2/3 in niri keybinds