Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nix-nvim

CI

nix-nvim screenshot

A configurable, batteries-included Neovim distribution built with nixvim. It ships sane defaults for editing, LSP, and UI out of the box, and exposes opt-in toggles for language support and AI assistants — usable as a standalone package or as a programs.nix-nvim home-manager module.

Try it

nix run github:aleks-sidorenko/nix-nvim

Home-manager usage

Add the flake input and follow nixpkgs for a reproducible build that uses identical package versions to your existing system:

# flake.nix inputs
nix-nvim = {
  url = "github:aleks-sidorenko/nix-nvim";
  inputs.nixpkgs.follows = "nixpkgs";
};

# home-manager module
{
  imports = [ inputs.nix-nvim.homeManagerModules.default ];
  programs.nix-nvim = {
    enable = true;
    development = { rust.enable = true; go.enable = true; };
    ai.claude-code.enable = true;
    theme = "catppuccin";
  };
}

Available options

Option Type Description
development.haskell.enable bool Haskell LSP + tooling
development.rust.enable bool Rust LSP + tooling
development.python.enable bool Python LSP + tooling
development.go.enable bool Go LSP + tooling
development.typescript.enable bool TypeScript LSP + tooling
development.scala.enable bool Scala LSP + tooling
development.java.enable bool Java LSP + tooling
ai.copilot.enable bool GitHub Copilot AI assistant
ai.claude-code.enable bool Claude Code AI assistant
theme enum Colorscheme — currently "catppuccin"

Hotkeys

Keybindings are documented in docs/hotkeys.md — a full reference covering motions, windows, buffers, LSP, Telescope, terminal, git, completion, Treesitter text objects, and the opt-in AI and language-specific bindings. The leader key is Space.

Advanced

extraConfig accepts a nixvim module or a list of modules, merged via .extend. Use it to override or extend anything in the base config:

programs.nix-nvim = {
  enable = true;
  extraConfig = {
    plugins.telescope.enable = false;
  };
};

Real-world example

For a complete production setup, see aleks-sidorenko/nix-config — it consumes this flake across NixOS, nix-darwin, and home-manager systems. The integration is a thin home-manager wrapper that maps its own role/option system onto programs.nix-nvim and layers stylix theming on top:

Reproducibility note

Consumers should always set inputs.nixpkgs.follows = "nixpkgs" so that nix-nvim builds against the same nixpkgs revision as the rest of the system. Without this, nix-nvim pins its own nixpkgs, which increases closure size and may produce a Neovim built against different system libraries.

License

MIT — see LICENSE.

About

A configurable, developer oriented, batteries-included Neovim distribution built with nixvim — usable standalone or as a home-manager module.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages