Usage¶
Run directly¶
No install needed - nix run pulls and runs nvix instantly:
Files open as arguments:
As a flake input¶
Home Manager¶
{
inputs.nvix.url = "github:semi710/nvix";
outputs = { self, nixpkgs, nvix, ... }@inputs: {
homeConfiguration = {
"user@host" = inputs.home-manager.lib.homeManagerConfiguration {
modules = [({ pkgs, ... }: {
home.packages = [ nvix.packages.${pkgs.system}.core ];
home.sessionVariables.EDITOR = "nvim";
})];
};
};
};
}
NixOS¶
{ pkgs, inputs, ... }: {
environment.systemPackages = [ inputs.nvix.packages.${pkgs.system}.core ];
}
Nixvim (cherry-pick plugins)¶
If you already have a Nixvim config, import individual nvix plugin modules:
{ inputs, ... }: {
# Each plugin file is a nixvim module
imports = [
inputs.nvix.nvixPlugins.common
inputs.nvix.nvixPlugins.git
inputs.nvix.nvixPlugins.lsp
inputs.nvix.nvixPlugins.blink-cmp
];
}
Module path reference¶
| File | Flake attribute |
|---|---|
plugins/foo.nix |
inputs.nvix.nvixPlugins.foo |
plugins/foo/default.nix |
inputs.nvix.nvixPlugins.foo |
plugins/sub/foo.nix |
inputs.nvix.nvixPlugins.foo (flat name from filename) |
The plugins/default.nix auto-discovers every .nix file and
subdirectory under plugins/ and exports them as flake.nvixPlugins.*.
Binary cache¶
nvix publishes to nvix.cachix.org. Add to your flake or system config:
nix.settings = {
substituters = [ "https://nvix.cachix.org" ];
trusted-public-keys = [
"nvix.cachix.org-1:qVYAfj2oiH0DF3pSs8OfPYI6B0mAZ+h5mMajN+EOL2E="
];
};
Development¶
git clone --single-branch --branch master https://github.com/semi710/nvix.git
cd nvix
nix develop # devshell with nixfmt, nil, just, nom
Pre-commit runs nixfmt on all .nix files.