Skip to content

work: install Hex (voice dictation); declare installed-but-undeclared packages - #58

Merged
Jish2 merged 1 commit into
mainfrom
work-nix-hex-and-reclaims
Nov 3, 2026
Merged

Jish2 merged 1 commit into
mainfrom
work-nix-hex-and-reclaims

Conversation

@Jish2

@Jish2 Jish2 commented Nov 3, 2026

Copy link
Copy Markdown
Owner

While installing Hex (local voice dictation — hold Option, speak, it pastes where you are) on the work machine, make plan flagged six installed Homebrew packages that the work host config never declared. That's the exact class of thing make work-zap exists to remove, so each one got audited before filing this: five are real tools that just fell through the Jan 2026 brew bundle dump import, one is a genuine orphan.

What's being added and why

The new app:

  • hex (anomalyco/tap/hex) — the actual point of this PR. Local voice dictation, push-to-talk on Option.

Installed-but-undeclared packages rescued from a future zap:

  • nowplaying-cli + switchaudio-osx — load-bearing, not optional. The karabiner EarPods scripts hardcode both by absolute path (/opt/homebrew/bin/nowplaying-cli, /opt/homebrew/bin/SwitchAudioSource in earpods-lib.sh / earpods-music-toggle.sh), and karabiner.json binds those scripts to the USB-C center button. Undeclared, a zap would have silently broken the EarPods music toggle and mic routing.
  • yt-dlp — the pi harness's fetch_content uses it (+ ffmpeg) for YouTube transcripts and video-frame extraction. Also in personal use.
  • linearmouse — not running right now, but there's a real config at ~/.config/linearmouse/linearmouse.json (per-device acceleration curves). Declaring the cask keeps zap from deleting the thing that config belongs to.
  • lyrisland — menu-bar lyrics for Spotify, actively used (last launched 2026-10-21). Its tap eurfelux/tap was missing from the tap list too — that's why it slipped through the original import.

The one removal candidate:

  • kubeconform (k8s manifest validator) — audited and dropped: no scripts, skills, nix modules, or shell history reference it, and nothing installed depends on it. It stays undeclared; it only disappears on an explicit make work-zap, never on a plain switch.

make plan after the change: will be INSTALLED: hex, would be REMOVED by zap: kubeconform only. Nothing ssh-dependent in either direction.

One note: eurfelux/tap is currently untrusted in Homebrew — brew trust eurfelux/tap once before the switch if brew bundle refuses the cask.

Created with GPT-5.1-Codex-Max in pi.

… packages

While adding the Hex voice-dictation cask, the drift plan showed six
installed packages that the work host config did not declare — a future
`make work-zap` would have silently removed them. Audited each one:

- nowplaying-cli, switchaudio-osx: hardcoded by absolute path in the
  karabiner EarPods scripts (earpods-lib.sh, earpods-music-toggle.sh),
  bound to the USB-C center button — declare before they break
- yt-dlp: pi fetch_content needs it (+ ffmpeg) for YouTube transcripts
  and video-frame extraction
- linearmouse: cask in use until recently, real config lives in
  ~/.config/linearmouse — declare so zap can't take the config's owner
- lyrisland: menu-bar Spotify lyrics, actively used (last run
  2026-10-21); its tap (eurfelux/tap) was also missing from the import
- kubeconform: the one true orphan — no scripts, skills, or history
  reference it; stays undeclared and only a zap removes it

Also adds anomalyco/tap + hex (local voice dictation, hold-Option
push-to-talk).
@claude

claude Bot commented Nov 3, 2026

Copy link
Copy Markdown

Claude review: no issues found
Read the full diff (one file, .config/nix/hosts/work/default.nix: new taps, brews and casks); checked for syntax errors and CLAUDE.md compliance.
Approval: not approved. I couldn't confirm that the anomalyco/tap/hex and eurfelux/tap/lyrisland cask names exist, and I'm not comfortable merging without a human reading it.

@Jish2
Jish2 merged commit 972d10b into main Nov 3, 2026
2 checks passed
@Jish2
Jish2 deleted the work-nix-hex-and-reclaims branch November 3, 2026 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant