fix(#60): checks that lied, and claims the machine stopped honouring #61
No files matched your search
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Architecture decision records
|
||||
|
||||
Decisions this repo has made and will not silently revisit. One file per
|
||||
decision, named `NNN-<slug>.md`, listed here — an unlisted page fails `kb-lint`
|
||||
and does not exist as far as any agent is concerned.
|
||||
decision, named `NNN-<slug>.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.
|
||||
|
||||
+2
-2
@@ -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)
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
@@ -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_<id>.<ext>` and the ID is the
|
||||
whole address — `curl -L -o <name> "https://wallhaven.cc/w/<id>"` 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/<id>` answers `text/html`, the web page, so
|
||||
resolve the direct CDN URL through the API and download that:
|
||||
|
||||
```bash
|
||||
id=73g8xo # the wallhaven_<id> 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_<id>.<ext>`, 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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user