Files
command-center/omp-docs/inventory/home-config-census.md
T
Frank 86280608e5 Refresh the userspace census from live measurements
`inventory/home-config-census.md` was dated 2026-08-28, tagged `unverified`,
and every path in it was `/home/dank` — it described another box, yet
`inventory/index.md` still advertised it as the input for the pruning session,
so the pruning session would have pruned against fiction.

Rebuilt from this box, purpose stated in line one. Classification is per FILE
because the tracked unit is a symlink into `dotfiles/`: a directory can look
"real" while every file inside it is tracked (`niri` 12/1, `gtk-3.0` 3/0), and
a directory can be one whole symlink (`lazyvim`). The classifier command is in
the page so tomorrow's agent reruns it instead of trusting the table.

The generated/authored split is the load-bearing part: 24 `noctalia*` palette
files across 20 apps are one generator pass, proven by the
`2026-10-14 19:05:40.330…40.813` same-second cluster and later single re-stamps
(`bat` 10-18, `niri` 10-18, `mango` 10-17). A same-second mass write is
generation, never authorship — so the source palette stays tracked and the
expansion never is. Adoption candidates are limited to programs that pass
`command -v`, with authorship read from the file; the prune list extends the
expected 14 with `pywalfox`, `qt5ct`, `qt6ct`, `turborepo`, and notes that six
of the orphan dirs contain nothing but generated palette.

`fib-watchdog.{service,timer}` is recorded as owned by the bench repo, not
adopted here: its `ExecStart` and `WorkingDirectory` are that project's
internals. It is flagged as a reinstall risk instead, which is the honest
status. Deleted: the `/home/dank` rows, `~/.pi`, Steam library sizes, and the
old offender/summary tables — numbers for software that is not installed here
fail the purpose test.

Refs #40
2026-10-20 16:48:33 -07:00

12 KiB

type, title, description, tags, created, census-date, verified, source
type title description tags created census-date verified source
reference Home Configuration Census (blankpad) Per-file tracked-vs-box-only census of ~/.config on blankpad — the input for the dotfiles pruning/adoption session.
inventory
census
dotfiles
config
2026-08-28 2026-10-20 2026-10-20 blankpad (CachyOS, /home/blank)

This page is the input for the dotfiles pruning/adoption session: for every ~/.config entry it separates what the repo already tracks from what lives only on this box, and sorts the box-only half into adopt / never-track / prune.

Method

Classification is per FILE, not per directory: the tracked unit is a symlink into ~/.omp/dotfiles/. A directory can look "real" (a plain folder, not itself a symlink) while every file inside it is a tracked symlink — niri and gtk-3.0 do exactly that. Conversely a directory can be a whole symlink into dotfiles (lazyvim) and be entirely tracked. So a directory-level verdict lies; only the leaf symlink target is ground truth.

  • tracked = a file whose fully-resolved target (readlink -f) is under /home/blank/.omp/dotfiles/.
  • box-only = a regular file, or a symlink that resolves elsewhere.

Rerun this classifier rather than trusting the table below:

DOT=/home/blank/.omp/dotfiles; CFG=/home/blank/.config
for d in "$CFG"/*; do
  [ -L "$d" ] && case "$(readlink -f "$d")" in "$DOT"/*) echo "$(basename "$d"): tracked=ALL box-only=0"; continue;; esac
  [ -d "$d" ] || { echo "$(basename "$d"): FILE (top-level)"; continue; }
  tr=0; bo=0; names=""
  while IFS= read -r -d '' f; do
    if [ -L "$f" ]; then case "$(readlink -f "$f")" in "$DOT"/*) tr=$((tr+1)); continue;; esac; fi
    bo=$((bo+1)); names+=" ${f#"$CFG"/}"
  done < <(find "$d" -mindepth 1 \( -type f -o -type l \) -print0 2>/dev/null)
  printf '%s: tracked=%d box-only=%d%s\n' "$(basename "$d")" "$tr" "$bo" "$names"
done

~/.config — tracked vs box-only

Profile/browser dirs (mozilla 5471 files, obsidian 99, FreeTube 56, nirimod 116, google-chrome-for-testing 5) are app state, never tracked, and are omitted as rows. Box-only bulk that is regenerated-by-the-program is named by category, not file-by-file.

~/.config/ dir tracked box-only box-only files
alacritty 1 1 themes/noctalia.toml (generated)
autostart 0 3 Flameshot.desktop, cachyos-hello.desktop, .AGENTTRASH/Handy.desktop
bat 0 2 config, themes/noctalia.tmTheme (generated)
btop 0 2 btop.conf, themes/noctalia.theme (generated)
cachyos 0 1 cachyos-hello/cachyos-hello.log (state)
cava 0 1 themes/noctalia (generated) — program absent, prune
crush 0 37 skills/<37> — skills-CLI install
containers 0 2 systemd/franksign-db.container, systemd/postgres.env (see §Owned-elsewhere / secret tier)
dconf 0 1 user (compiled dconf db, state)
devin 0 37 skills/<37> — skills-CLI install
fastfetch 0 1 themes/noctalia.jsonc (generated)
fish 2 1 fish_variables (fish var store, state)
flameshot 0 1 flameshot.ini
foot 0 2 foot.ini, themes/noctalia (generated) — program absent, prune
fzf 0 2 themes/noctalia.sh, themes/noctalia.fish (generated)
ghostty 2 1 themes/noctalia (generated)
glow 0 2 glow.yml, noctalia.json (generated)
goose 0 37 skills/<37> — skills-CLI install
gtk-3.0 3 0 —
gtk-4.0 2 1 servers (KDE-generated)
helix 0 1 themes/noctalia.toml (generated) — hx absent, prune
herdr 0 1 noctalia-colors.toml (generated)
hypr 0 2 hyprland.conf, noctalia.conf (generated) — hyprland absent, prune
kimchi 0 37 harness/skills/<37> — skills-CLI install
kitty 0 2 kitty.conf, themes/noctalia.conf (generated) — program absent, prune
labwc 0 2 rc.xml, noctalia.conf (generated) — program absent, prune
lazygit 0 2 config.yml, themes/noctalia.yml (generated)
lazyvim ALL 0 — (whole dir symlink → dotfiles/lazyvim)
mango 0 2 config.conf, noctalia.conf (generated) — program absent, prune
micro 0 154 adopt: settings.json, bindings.json; generated: colorschemes/noctalia.micro; bundled/state: syntax/* (146), buffers/history
mpv 0 0 — (empty)
nautilus 0 0 — (empty)
niri 12 1 noctalia.kdl (generated)
noctalia 2 0 —
nvim 0 0 — (empty)
pywalfox 0 1 config.json — program absent, prune
qt5ct 0 1 colors/noctalia.conf (generated) — program absent, prune
qt6ct 0 1 colors/noctalia.conf (generated) — program absent, prune
rofi 0 1 noctalia.rasi (generated) — program absent, prune
scroll 0 2 config, noctalia (generated) — program absent, prune
secrets 0 4 gitea, hf_token, hf_token_write, kagi_api_key (names only — secret tier)
shelly 0 2 config.json, settings.json
sway 0 2 config, noctalia (generated) — program absent, prune
systemd 9 3 user/fib-watchdog.service, user/fib-watchdog.timer, user/timers.target.wants/fib-watchdog.timer
tmux 0 1 themes/noctalia.conf (generated)
turborepo 0 1 telemetry.json — turbo absent, prune
umbriel 0 2 config.toml, noctalia.toml (generated) — program absent, prune
unity3d 0 235 RimWorld state: Saves (201), Config (21), other (13) — never track
wezterm 0 1 colors/Noctalia.toml (generated) — program absent, prune
yay 0 0 — (empty)
ytm-player 0 1 theme.toml — program absent, prune

Top-level ~/.config files (not directories)

All regular files, none symlinked into dotfiles: starship.toml (prune — starship absent), frank-job-hunt.env (secret tier), kdeglobals, partitionmanagerrc, pavucontrol.ini, cachyos-hello.json, user-dirs.dirs, user-dirs.locale (XDG/desktop state).

Adoption candidates (program passes command -v)

Pre-vetted box-only files worth moving into dotfiles. Authorship is from the file contents, read directly.

File Program (path) Authored or default
~/.gitconfig git (/usr/bin/git) Authored — single setting line: credential.helper = store --file ~/.config/secrets/gitea (points at the secret tier; adopt the line, never the file it names)
~/.config/bat/config bat (/usr/bin/bat) Authored — one line --theme=noctalia
~/.config/lazygit/config.yml lazygit (/usr/bin/lazygit) Authored — 28-line custom noctalia color theme
~/.config/micro/settings.json micro (/usr/bin/micro) Authored — {"colorscheme":"noctalia"}
~/.config/micro/bindings.json micro (/usr/bin/micro) Default — empty {}, no custom bindings
~/.config/flameshot/flameshot.ini flameshot (/usr/bin/flameshot) Authored — contrastOpacity=188, startupLaunch=true
~/.config/glow/glow.yml glow (/usr/bin/glow) Default — shipped template, all default values (noctalia look comes from the generated noctalia.json, not this file)
~/.config/autostart/Flameshot.desktop flameshot (/usr/bin/flameshot) Authored — Exec=flameshot, X-GNOME-Autostart-enabled=true

Every ~/.config box-only row above lists each file, so the session can extend beyond these seven (e.g. btop/btop.conf, shelly/* are also installed-program configs).

Never track (box-only)

Reason Contents
Generated palette expansion Every themes/noctalia*, */noctalia.*, */colors/noctalia* / Noctalia* (24 files outside app-profile dirs). Machine-written by matugen/noctalia, not hand-authored: the stat -c '%y %n' cluster 2026-10-14 19:05:40.330…40.813 -0700 writes 24 files in one second (alacritty/themes/noctalia.toml at .330212397, btop/themes/noctalia.theme at .334212456, tmux/themes/noctalia.conf at .813219586, …); later re-runs re-stamp singles — bat/themes/noctalia.tmTheme 2026-10-18 17:11:22, niri/noctalia.kdl 2026-10-18 17:36:27, mango/noctalia.conf 2026-10-17 18:23:37. A same-second mass-write is generation, never an edit.
App state / profiles mozilla (5471), unity3d RimWorld state (235), nirimod (116), obsidian (99), FreeTube (56), google-chrome-for-testing (5); plus per-program state inside tracked dirs: dconf/user, fish/fish_variables, micro/syntax/*+micro/buffers/history, gtk-4.0/servers, cachyos/cachyos-hello.log.
Skills-CLI installs crush (37), devin (37), goose (37), kimchi/harness (37) skill trees — provisioned by the skills CLI, owned by the store, not this repo. See skills/store-wiring.
Secret tier ~/.config/secrets/ (gitea, hf_token, hf_token_write, kagi_api_key — names only), top-level frank-job-hunt.env, containers/systemd/postgres.env. Never tracked, values never printed.

Owned-elsewhere (do not adopt here)

  • ~/.config/containers/systemd/franksign-db.container — header: "Installed by infra/setup-dev.sh into ~/.config/containers/systemd/." Owned by the franksign repo; its quadlet, not this box's config.
  • ~/.config/systemd/user/fib-watchdog.service + .timer — box-only. ExecStart=/usr/bin/bun src/cli.ts worker with WorkingDirectory=/home/blank/Projects/frank-intelligence-bench. systemctl --user is-active fib-watchdog.timer → inactive. This box holds the only copy. Do not adopt it into dotfiles: ExecStart and WorkingDirectory are the bench project's internals, so that repo owns the unit — land it there and this row becomes "deployed by the bench repo". Until then it is a reinstall risk recorded here, not a dotfiles gap.
  • Hygiene finding, fixed 2026-10-20: the enable-symlink ~/.config/systemd/user/default.target.wants/blankpad-desk-autoswitch.service pointed into ~/.omp/wt/de-redesign-20261009/…, a worktree the heartbeat had already reaped — so desk auto-switching was silently off while systemctl --user is-enabled still answered enabled. Relinked to dotfiles/zz-blankpad/.config/systemd/user/blankpad-desk-autoswitch.service and daemon-reloaded; left inactive on purpose, because starting it mid- session applies a desk profile and the box is in use. Law and diagnosis: dotfiles-deploy.

Prune list (owning program absent from command -v)

All verified with command -v <prog> (git resolves to /usr/bin/git; a session alias can mask it, so probe in a clean shell).

Config Program checked
sway, hypr, labwc, mango, scroll, umbriel sway hyprland labwc mango scroll umbriel — all ABSENT
wezterm, kitty, foot wezterm kitty foot — all ABSENT
rofi, helix, cava, ytm-player, starship.toml rofi hx cava ytm-player starship — all ABSENT
pywalfox, qt5ct, qt6ct, turborepo pywalfox qt5ct qt6ct turbo — all ABSENT

The first three rows are the expected set (all 14 confirmed absent). My check disagrees with the expected set by extending it: pywalfox, qt5ct, qt6ct, turborepo are also installed-nowhere config dirs and belong in the prune list. Note the orphan dirs cava, rofi, helix, wezterm, qt5ct, qt6ct contain only a generated noctalia palette file — pruning them removes no authored config. crush/devin/goose/kimchi also fail command -v but are the skills-CLI tier above, not this session's prune targets.