"This configuration is modular by design—if you love a part of it, grab that slice, plug it into your Nixvim config, and roll with it!"
Nvix is a modular, powerful, and reproducible Neovim configuration framework powered by Nixvim. It leverages the Nix ecosystem to provide flexible, reliable, and highly customizable Neovim environments—whether you need a lightweight config for quick edits or a comprehensive setup for full development workflows.
config.nvix
.Run Nvix instantly with Nix (no install required):
nix run "github:niksingh710/nvix#<type>"
# <type> can be: bare | default | full
experimental-features = nix-command flakes
)Install Nix (multi-user):
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | \
sh -s -- install --no-confirm --extra-conf "trusted-users = $(whoami)"
# In your flake.nix
inputs.nvix.url = "github:niksingh710/nvix";
# For NixOS
environment.packages = [
inputs.nvix.packages.${pkgs.system}.default
];
# For Home Manager
home.packages = [
inputs.nvix.packages.${pkgs.system}.default
];
# Replace `default` with `bare`, `core`, or `full` as needed.
inputs.nvix.packages.${pkgs.system}.default.extend {
colorschemes.tokyodark.enable = true;
}
Every plugin or feature in Nvix is a module, exposed under nvixPlugins
.
For essential utilities, include the common
module.
Example: Importing modules in Nixvim:
# Add to your flake inputs:
nvix.url = "github:niksingh710/nvix";
# In your Nixvim config:
modules = [
inputs.nvix.nvixPlugins.common
inputs.nvix.nvixPlugins.lualine
];
Module Path Reference:
plugins/filename.nix
→ inputs.nvix.nvixPlugins.filename
plugins/somedir/default.nix
→ inputs.nvix.nvixPlugins.somedir
Type | Description | Includes |
---|---|---|
bare |
Fast, minimal setup—ideal for servers or quick edits | Just the basics |
default |
Core configuration with sensible defaults, LSP, and language support | bare + extras |
full |
All-in-one, feature-rich setup including advanced plugins (e.g. LaTeX) | default + more |
Fuzzy Finder:
Nvix uses Snacks.picker
(instead of Telescope) for an optimized fuzzy finding experience.
What is Nvix for? Nvix started as a Nix learning experiment and evolved into a robust, composable Neovim configuration framework.
Why three configurations?
bare
: Minimal, distraction-freecore
: Daily usage with LSP and language supportfull
: Advanced workflows such as LaTeXCan I use just one module? Absolutely. Nvix is designed so you can import only what you need.
Are contributions welcome? Yes! Docs, configs, plugins, suggestions—all are valued. Open a PR or issue.
Why only some options in config.nvix
?
Nixvim already exposes most customization options. Nvix adds curated, ready-to-use modules.
Just keep it simple, stupid! ->
kiss
design principle
You’re welcome to contribute in any way:
Important: This repository has undergone major revisions in the past, which has resulted in a larger history and increased cloning size. To minimize download time and space, please use a single branch clone:
git clone --single-branch --branch master https://github.com/niksingh710/nvix.git
# ssh
git clone --single-branch --branch master git@github.com:niksingh710/nvix.git
Please open an issue or PR with your ideas or improvements!
This project is licensed under the MIT License.
Nvix is a personal project, but designed for flexibility and sharing. If you find it useful, please consider starring the repository!
Have questions or suggestions? Open an issue—I’m always happy to help.
Happy Nixing! ❄️