|
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.
- Modular by Design: Each feature and plugin is its own module. Mix, match, or extend as you need.
- Multiple Configurations:
- Bare: Minimal setup for fast, distraction-free editing and server use.
- Core: Daily-driver configuration with LSP and language support.
- Full: Comprehensive environment including advanced plugins (LaTeX, etc.).
- Easy Customization: Import only what you want, or override settings in
config.nvix
. - Flake Native: Built for the modern Nix ecosystem.
Run Nvix instantly with Nix (no install required):
nix run "github:niksingh710/nvix#<type>"
# <type> can be: bare | default | full
- Nix Package Manager (multi-user recommended)
- Flakes enabled (
experimental-features = nix-command flakes
) - Familiarity with NixOS or Home Manager is helpful
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 LaTeX
Can 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:
- Improve docs or fix typos
- Suggest features or plugin support
- Enhance language/LSP integration
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 [email protected]:niksingh710/nvix.git
Please open an issue or PR with your ideas or improvements!
This project is licensed under the MIT License.
- Thanks to Nixvim for providing the foundation and inspiration.
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! ❄️