feat: load nixos hm-options dynamically

This commit is contained in:
Swarsel 2024-12-15 17:18:49 +01:00
parent d9a72d44ea
commit 4232360563
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
3 changed files with 12 additions and 4 deletions

View file

@ -2345,6 +2345,10 @@ I usually use =mutableUsers = false= in my NixOS configuration. However, on a ne
type = types.str; type = types.str;
default = ""; default = "";
}; };
options.swarselsystems.withHomeManager = mkOption {
type = types.bool;
default = true;
};
options.swarselsystems.initialSetup = lib.mkEnableOption "initial setup (no sops keys available)"; options.swarselsystems.initialSetup = lib.mkEnableOption "initial setup (no sops keys available)";
options.swarselsystems.server.enable = lib.mkEnableOption "is a server machine"; options.swarselsystems.server.enable = lib.mkEnableOption "is a server machine";
options.swarselsystems.server.kavita = lib.mkEnableOption "enable kavita on server"; options.swarselsystems.server.kavita = lib.mkEnableOption "enable kavita on server";
@ -3171,9 +3175,9 @@ Mostly used to install some compilers and lsp's that I want to have available wh
First, we enable the use of =home-manager= as a NixoS modul. First, we enable the use of =home-manager= as a NixoS modul.
#+begin_src nix :tangle profiles/common/nixos/home-manager.nix #+begin_src nix :tangle profiles/common/nixos/home-manager.nix
{ inputs, ... }: { inputs, config, lib, ... }:
{ {
home-manager = { home-manager = lib.mkIf config.swarselsystems.withHomeManager {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
extraSpecialArgs = inputs; # used mainly for inputs.self extraSpecialArgs = inputs; # used mainly for inputs.self

View file

@ -8,6 +8,10 @@ in
type = types.str; type = types.str;
default = ""; default = "";
}; };
options.swarselsystems.withHomeManager = mkOption {
type = types.bool;
default = true;
};
options.swarselsystems.initialSetup = lib.mkEnableOption "initial setup (no sops keys available)"; options.swarselsystems.initialSetup = lib.mkEnableOption "initial setup (no sops keys available)";
options.swarselsystems.server.enable = lib.mkEnableOption "is a server machine"; options.swarselsystems.server.enable = lib.mkEnableOption "is a server machine";
options.swarselsystems.server.kavita = lib.mkEnableOption "enable kavita on server"; options.swarselsystems.server.kavita = lib.mkEnableOption "enable kavita on server";

View file

@ -1,6 +1,6 @@
{ inputs, ... }: { inputs, config, lib, ... }:
{ {
home-manager = { home-manager = lib.mkIf config.swarselsystems.withHomeManager {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
extraSpecialArgs = inputs; # used mainly for inputs.self extraSpecialArgs = inputs; # used mainly for inputs.self