A Neovim configuration system built around Nix modules, enabling declarative and reproducible editor setups.
Nixvim is a Neovim configuration system built around Nix modules, distributed as a Nix flake. It allows developers to declaratively configure Neovim using Nix, generating optimized Lua configurations automatically. This solves the problem of managing complex, reproducible editor setups across different machines and environments.
Nix and NixOS users who want a reproducible, declarative Neovim configuration, as well as developers seeking to manage their editor setup alongside their system configuration.
Developers choose Nixvim for its seamless integration with the Nix ecosystem, enabling reproducible configurations, easy sharing, and performance-optimized Lua generation without sacrificing flexibility.
Configure Neovim with Nix! [maintainers=@GaetanLepage, @traxys, @mattsturgeon, @khaneliman]
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables entire Neovim setups to be defined in Nix expressions, ensuring configurations are reproducible and easily shareable across machines, as emphasized in the README's philosophy.
Plugins are enabled via modular Nix options with sensible defaults, reducing manual configuration effort for common setups like lualine with colorschemes.
Generates Lua configuration automatically for fast startup times and disables all features by default to minimize overhead, as noted in the 'How does it work?' section.
Supports raw Lua through extraConfigLua and settings options, and allows Lua code in Nix via the __raw type, providing escape hatches for advanced users.
Requires Nix and compatible nixpkgs versions, with strict versioning warnings in the README, adding setup complexity and potential compatibility issues for non-Nix users.
Not all Neovim plugins have built-in Nix modules, forcing users to rely on extraPlugins and manual configuration, as admitted in the Plugins section.
The README states that detailed documentation for every module is still planned, which can hinder discoverability and ease of use for less common plugins.