Using my own Minimal NeoVim Wrapper
With flakes enabled
nix run github:Gerg-L/nvim-flake
Legacy (may seem like it stalls)
nix-shell -p '(import (builtins.fetchTarball "https://github.com/Gerg-L/nvim-flake/archive/master.tar.gz")).packages.${builtins.currentSystem}.default' --run nvim
I'd recommend forking and modifiying to your use-case rather than using this as-is in your own config...
But if you want do use it anyways or install your fork here's how
Add this flake as an input
#flake.nix
{
inputs = {
nvim-flake = {
url = "github:Gerg-L/nvim-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
...
(Make sure you're passing inputs to your modules)
#anyModule.nix
# add system wide
environment.systemPackages = [
inputs.nvim-flake.packages.${pkgs.system}.neovim
];
# add per-user
users.users."<name>".packages = [
inputs.nvim-flake.packages.${pkgs.system}.neovim
];
Use fetchTarball
let
nvim-flake = import (builtins.fetchTarball {
# Get the revision by choosing a version from https://github.com/Gerg-L/nvim-flake/commits/master
url = "https://github.com/Gerg-L/nvim-flake/archive/<revision>.tar.gz";
# Get the hash by running `nix-prefetch-url --unpack <url>` on the above url
sha256 = "<hash>";
});
in
{
# add system wide
environment.systemPackages = [
nvim-flake.packages.${pkgs.system}.neovim
];
# add per-user
users.users."<name>".packages = [
nvim-flake.packages.${pkgs.system}.neovim
];
Update the flake like any other nix flake update
Add/remove/update plugins via npins
Example of adding a plugin: npins add github nvim-treesitter nvim-treesitter-context --branch main
Example of updated all plugins: npins update --full
All lua configuration is done in the /gerg directory and added to plugins
My lua config is not very good so I recommend writing your own