{ description = "A nixvim configuration"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixvim.url = "github:nix-community/nixvim"; flake-parts.url = "github:hercules-ci/flake-parts"; }; outputs = { nixvim, flake-parts, ... }@inputs: flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; perSystem = { pkgs, system, ... }: let nixvimLib = nixvim.lib.${system}; nixvim' = nixvim.legacyPackages.${system}; nixvimModule = { opts }: { inherit pkgs; module = import ./config; # import the module directly # You can use `extraSpecialArgs` to pass additional arguments to your module files extraSpecialArgs = { inherit pkgs; inherit opts; }; }; nvim = { opts }: nixvim'.makeNixvimWithModule (nixvimModule { inherit opts; }); in { checks = { # Run `nix flake check .` to verify that your config is not broken default = nixvimLib.check.mkTestDerivationFromNixvimModule (nixvimModule { opts = { pywal = false; }; }); }; packages = { # Lets you run `nix run .` to start nixvim default = nvim { opts = { pywal = false; }; }; pywal = nvim { opts = { pywal = true; }; }; }; }; }; }