- LSPs are installed through nixpkgs.
- Neovim plugins are managed with lazy.nvim.
- Neovim configuration use lua for mainstream development experience.
- When running in development mode, the Neovim configuration is symlinked to the Nix store.
This approach streamlines development, allowing you to apply configuration changes immediately without having to rebuild the flake.
Run the dev
app :
git clone [email protected]:Runeword/neovim.git && \
cd neovim && NVIM_CONFIG_DIR="$PWD/config" nix run .#dev --impure
Install the dev
package with home-manager :
flake.nix
inputs.runeword-neovim.url = "github:Runeword/neovim";
home.nix
home.packages = [
(inputs.runeword-neovim.packages.${pkgs.system}.dev.options { configPath = "${config.home.homeDirectory}/neovim/config"; })
];
- In bundled mode, the Neovim configuration is copied into the Nix store.
This ensures that both the flake and its Neovim configuration are fully isolated from your local environment.
However, any changes to the Neovim configuration require rebuilding the flake before they take effect. - We use Cachix to provide ready-to-use Neovim binaries, so you can start using Neovim instantly without building it from source.
Run the default
app :
nix run "github:Runeword/neovim" \
--option substituters "https://runeword-neovim.cachix.org" \
--option trusted-public-keys "runeword-neovim.cachix.org-1:Vvtv02wnOz9tp/qKztc9JJaBc9gXDpURCAvHiAlBKZ4="
Install the default
package with home-manager :
flake.nix
nixConfig.extra-substituters = [ "https://runeword-neovim.cachix.org" ];
nixConfig.extra-trusted-public-keys = [ "runeword-neovim.cachix.org-1:Vvtv02wnOz9tp/qKztc9JJaBc9gXDpURCAvHiAlBKZ4=" ];
inputs.runeword-neovim.url = "github:Runeword/neovim";
home.nix
home.packages = [
inputs.runeword-neovim.packages.${pkgs.system}.default
];
Cachix
- This repository contains 1 github actions workflow that automatically builds the neovim flake on Linux and MacOS environments.
- A new build is triggered whenever flake.nix or flake.lock changes.
- Build artifacts are uploaded to Cachix (a binary cache service) so subsequent builds can fetch pre-built binaries instead of rebuilding them from source.