Skip to content

Variants

nvix exports three pre-built Neovim binaries. Each is a nixvim package assembled from plugin modules.


bare

Lean variant for reviewing AI-made changes (diffs, hunks, lazygit) and quick edits on servers or ISOs. No LSP, completion, bufferline or image support.

Ships both nvim and an ai-nvim bin alias (nixvim only supports fixed vi/vim aliases), so it can sit next to other variants in home.packages.

Module What it does
common Options, keymaps, clipboard (OSC52 over SSH), icons, colorscheme, which-key, flash, comment, surround, autopairs, lz-n
git Gitsigns, diffview, git-conflict
snacks Snacks.nvim: lazygit float (<leader>gg), picker, dashboard, notifier, bigfile - image support off, git + lazygit bundled, ruby provider disabled (works standalone on a fresh machine)
treesitter Syntax highlighting (33 curated grammars, regex fallback), context, mini.ai

core (default)

Everything in bare, plus buffer and UI niceties - note it uses the full treesitter grammar set (328 grammars) and snacks image support:

Module What it does
buffer Bufferline (tabs), harpoon file navigation
ux Colorizer, dressing (better UI), lastplace, fidget (LSP notifications), windows.nvim
noice UI replacement for cmdline, messages, notifications
lualine Statusline (transparent, global)
firenvim Neovim in browser textareas (opt-in, takeover = never)
leetcode LeetCode solver (custom fork)
blink-cmp Completion engine (blink.cmp + luasnip), Copilot integration
lang Language servers: Nix, Python, Rust, Lua, Shell, TOML, Typst, Haskell, Web (TS, HTML, CSS, Tailwind, Svelte, JSON, ESLint, Biome), Markdown (obsidian, render-markdown, glow, markdown-preview, img-clip), HTTP (kulala)
lsp All lspconfig servers (auto-enabled, package = null → use system PATH), lspsaga, trouble, tiny-inline-diagnostic, nvim-ufo (folding), conform.nvim (formatter)
autosession Session persistence with git-branch awareness
ai Copilot (suggestions + chatgpt plugin)

full

Everything in core, plus:

Module What it does
tex Vimtex, texlab (LSP), texpresso (live preview), full texlive scheme

Module composition

# packages/default.nix
bareModules = [ common git treesitter bareExtras ];
coreModules = [ common buffer ux snacks noice git lualine firenvim
  leetcode treesitter blink-cmp lang lsp autosession ai ];
fullModules = coreModules ++ [ tex ];

bareExtras is an inline module in packages/default.nix that re-imports snacks with image deps dropped, git+lazygit bundled, ruby provider off and treesitter grammars curated to 33.

Each list is passed to nixvim.legacyPackages.makeNixvimWithModule, which assembles a wrapped nvim binary.