My NvChad config ported to nix4nvchad.
The reproducible source of truth lives in nvchad-starter/. Do not edit ~/.config/nvim as the primary configuration; the Nix wrapper prepares the runtime config from this repository.
Run without installing:
nix run .# --allow-import-from-derivationBuild the wrapper:
nix build .#nvchad --allow-import-from-derivation --print-build-logsInstall into the current Nix profile:
nix profile install .#nvchad --allow-import-from-derivationThen confirm the profile wrapper is first in PATH:
which nvim
nvim --versionflake.nixpackages NvChad throughnix4nvchadand adds external tools used by plugins, formatters, and LSP servers.flake.lockpins Nix inputs.nvchad-starter/contains the NvChad Lua configuration and plugin lockfile.nvchad-starter/lazy-lock.jsonpins Lazy.nvim plugins.
This config pins nvim-treesitter to branch main because the legacy master branch is not compatible with Neovim 0.12.
The flake includes the tree-sitter CLI in extraPackages. The Lua config uses the nvim-treesitter main API (require("nvim-treesitter").install, get_available, and get_installed) to install base parsers and automatically install missing parsers for opened filetypes.
The chadwal theme is generated by WallSync, loaded as a regular Lazy.nvim plugin. The old Python pywal/chadwal.py daemon and local Pywal templates are not used.
lua/themes/chadwal.lua is only a minimal first-boot fallback to let Base46 compile before WallSync has written its generated chadwal theme into Lazy's base46 plugin directory.
The flake exposes homeManagerModules.default, but direct profile installation is the current preferred setup.