Files
command-center/omp-docs/tools/neovim.md
Frank cae49fcd09 docs: record the LazyVim profile and the auto-speak arming rule (Refs #36)
Neither setting did what it looked like it did, and the knowledge base had no
page for either, so both were invisible until the operator asked.

tools/neovim.md: the two entry points (vanilla `nvim`, `lazyvim` as an
NVIM_APPNAME profile), the fresh-box install, the base16 wallpaper-palette hook
with its SIGUSR1 contract, and the trap that matters — the official recipe
clones over ~/.config/nvim and destroys the vanilla quick-edit path.
tools/applications.md gets the editor row (Ghostty's row had lost its label)
and Neovim's verified version.

core/dankvoice.md gains the arming rule: arming is session-scoped, a silent
session start is a config state, and the two checks — `/say status` then
`pgrep -a pw-play` — prove the chain without blaming the endpoint.

kb-lint 0 violations, index-coverage 0 issues.
2026-10-19 13:28:24 -07:00

3.4 KiB
Raw Permalink Blame History

type, title, description, tags, verified, timestamp
type title description tags verified timestamp
reference Neovim and LazyVim Two nvim entry points on the workstations — vanilla `nvim` and the `lazyvim` NVIM_APPNAME profile — plus the wallpaper palette hook and the fresh-box install procedure.
editor
nvim
lazyvim
dotfiles
blankpad
2026-10-19 2026-10-19

Neovim and LazyVim

Two editors share one binary. Plain nvim is vanilla (no user config at all — quick edits, agent-spawned edits, git commit buffers). The LazyVim distribution lives in a separate NVIM_APPNAME profile, reached with the lazyvim shell function. Keeping them apart is deliberate: a distro in ~/.config/nvim would slow down and surprise every throwaway nvim file call.

vanilla LazyVim
command nvim lazyvim (= NVIM_APPNAME=lazyvim nvim)
config ~/.config/nvim (empty) ~/.config/lazyvim → tracked at dotfiles/lazyvim/
plugins/state none ~/.local/share/lazyvim, ~/.local/state/lazyvim, ~/.cache/lazyvim — runtime, never tracked
vim (not nvim) ~/.vimrc absent → Vim 9.2 stock defaults —

The function is defined in dotfiles/zz-blankpad/zsh/.zshrc; vim and bare nvim stay untouched on purpose.

Fresh box

  1. git clone http://192.168.0.143:3000/dank/command-center.git ~/.omp — the profile arrives as dotfiles/lazyvim/ (dotfiles tier, see live-sync).
  2. ln -s ~/.omp/dotfiles/lazyvim ~/.config/lazyvim — files, not the whole directory, are the repo convention elsewhere, but this tree is nvim-only and the plugin manager rewrites lazy-lock.json in place.
  3. NVIM_APPNAME=lazyvim nvim --headless "+Lazy! sync" +qa — bootstraps lazy.nvim, then every plugin. Needs network (GitHub) once.
  4. :LazyHealth inside lazyvim to confirm.

Requirements met on blankpad: nvim ≥ 0.11 with LuaJIT, git, ripgrep, fd, fzf, lazygit, a Nerd Font. tree-sitter CLI is not installed and is not needed — nvim-treesitter downloads/compiles parsers with cc on the first real session. Language servers install on demand through mason.

The wallpaper palette (lua/matugen.lua)

LazyVim's colorscheme is overridden by a base16 palette kept in lua/matugen.lua, applied through RRethy/base16-nvim on every ColorScheme event (lua/plugins/matugen.lua) — so :colorscheme <anything> still lands on the palette, and v:colors_name keeps reporting the underlying theme, which LazyVim's own plugin tweaks depend on.

The module also registers a SIGUSR1 handler that re-requires itself: a real matugen install (theme generator, not installed here) writing this file from a template can hot-retheme a live editor with pkill -USR1 -x nvim. Without matugen the palette is a static snapshot — the file is the source of truth.

To recolor by hand: edit the base00–base0F table, then send SIGUSR1 (or restart). Highlight groups for pickers live below the table; unlisted groups are harmless no-ops.

Do not

  • Do not clone LazyVim/starter over ~/.config/nvim — the official recipe, but it destroys the vanilla quick-edit path this box relies on.
  • Do not commit ~/.local/share/lazyvim (≈200 MB of checkouts). lazy-lock.json inside the profile is tracked: it pins plugin revisions.

See Also

  • applications — the editor's place in the CachyOS/Niri stack.
  • tmux — extended-keys setup that the same terminals need.