niksingh710/nvix

github github
editorflakesneovimnixnixpkgsnixvimnvimvim
stars 141
issues 0
subscribers 2
forks 34
CREATED

UPDATED


image

"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!"

GitHub Stars GitHub Forks GitHub Issues License: MIT Nix Flake Compatible

Nvix

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.

Features

  • 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.

Quickstart

Run Nvix instantly with Nix (no install required):

nix run "github:niksingh710/nvix#<type>"
# <type> can be: bare | default | full

Installation

Prerequisites

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)"

Add Nvix as a flake input

# In your flake.nix
inputs.nvix.url = "github:niksingh710/nvix";

Use with NixOS or Home Manager

# 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.

Customization Example

inputs.nvix.packages.${pkgs.system}.default.extend {
  colorschemes.tokyodark.enable = true;
}

Using Plugins and Modules

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.nixinputs.nvix.nvixPlugins.filename
  • plugins/somedir/default.nixinputs.nvix.nvixPlugins.somedir

Configuration Types Overview

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

Previews

1 2
3 4
5 6

Fuzzy Finder: Nvix uses Snacks.picker (instead of Telescope) for an optimized fuzzy finding experience.

picker

FAQs

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-free
  • core: Daily usage with LSP and language support
  • full: 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.

Contributing

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 git@github.com:niksingh710/nvix.git

Please open an issue or PR with your ideas or improvements!

License

This project is licensed under the MIT License.

Acknowledgments

  • 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! ❄️