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.
3.4 KiB
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. |
|
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
git clone http://192.168.0.143:3000/dank/command-center.git ~/.omp— the profile arrives asdotfiles/lazyvim/(dotfiles tier, see live-sync).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 rewriteslazy-lock.jsonin place.NVIM_APPNAME=lazyvim nvim --headless "+Lazy! sync" +qa— bootstraps lazy.nvim, then every plugin. Needs network (GitHub) once.:LazyHealthinsidelazyvimto 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/starterover~/.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.jsoninside 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.