diff --git a/modules/flake-parts/setups/home-manager.nix b/modules/flake-parts/setups/home-manager.nix index f4457ab0..88720eb8 100644 --- a/modules/flake-parts/setups/home-manager.nix +++ b/modules/flake-parts/setups/home-manager.nix @@ -151,7 +151,7 @@ let (lib.mkIf (config.nixvim.instance != null) ({ lib, ... }: { imports = [ - inputs.nixvim.homeManagerModules.nixvim + inputs.${config.nixvim.branch}.homeManagerModules.nixvim ]; config.programs.nixvim = { ... }: { diff --git a/modules/flake-parts/setups/nixos.nix b/modules/flake-parts/setups/nixos.nix index bd95f4d7..ebc51705 100644 --- a/modules/flake-parts/setups/nixos.nix +++ b/modules/flake-parts/setups/nixos.nix @@ -361,7 +361,7 @@ let setupConfig = config; in { lib, ... }: { - imports = [ inputs.nixvim.nixosModules.nixvim ]; + imports = [ inputs.${config.nixvim.branch}.nixosModules.nixvim ]; programs.nixvim = { ... }: { enable = lib.mkDefault true; diff --git a/modules/flake-parts/setups/shared/nixvim-instance-options.nix b/modules/flake-parts/setups/shared/nixvim-instance-options.nix index 4982f2a8..0001f411 100644 --- a/modules/flake-parts/setups/shared/nixvim-instance-options.nix +++ b/modules/flake-parts/setups/shared/nixvim-instance-options.nix @@ -11,6 +11,22 @@ ''; }; + branch = lib.mkOption { + type = lib.types.nonEmptyStr; + default = "nixvim"; + example = "nixvim-stable"; + description = '' + The branch of NixVim to be used for the module. + + ::: {.tip} + A rule of thumb for properly setting up NixVim with the wider-scoped + environment is it should match the nixpkgs version of it. For example, + a NixOS system of `nixos-23.11` nixpkgs branch should be paired with a NixVim + branch of `nixos-23.11`. + ::: + ''; + }; + additionalModules = lib.mkOption { type = with lib.types; listOf raw; default = [ ];