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.
78 lines
3.4 KiB
Markdown
78 lines
3.4 KiB
Markdown
---
|
||
type: reference
|
||
title: Neovim and LazyVim
|
||
description: 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.
|
||
tags:
|
||
- editor
|
||
- nvim
|
||
- lazyvim
|
||
- dotfiles
|
||
- blankpad
|
||
verified: 2026-10-19
|
||
timestamp: 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](live-sync.md)).
|
||
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](applications.md) — the editor's place in the CachyOS/Niri stack.
|
||
* [tmux](tmux.md) — extended-keys setup that the same terminals need.
|