From 423236056305466a51b21a74ae2659a8e375b739 Mon Sep 17 00:00:00 2001 From: Swarsel Date: Sun, 15 Dec 2024 17:18:49 +0100 Subject: [PATCH] feat: load nixos hm-options dynamically --- SwarselSystems.org | 8 ++++++-- modules/nixos/setup.nix | 4 ++++ profiles/common/nixos/home-manager.nix | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/SwarselSystems.org b/SwarselSystems.org index 9fd1cab..e6d7429 100644 --- a/SwarselSystems.org +++ b/SwarselSystems.org @@ -2345,6 +2345,10 @@ I usually use =mutableUsers = false= in my NixOS configuration. However, on a ne type = types.str; default = ""; }; + options.swarselsystems.withHomeManager = mkOption { + type = types.bool; + default = true; + }; options.swarselsystems.initialSetup = lib.mkEnableOption "initial setup (no sops keys available)"; options.swarselsystems.server.enable = lib.mkEnableOption "is a server machine"; 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. #+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; useUserPackages = true; extraSpecialArgs = inputs; # used mainly for inputs.self diff --git a/modules/nixos/setup.nix b/modules/nixos/setup.nix index 6e6a0d5..7f7fa56 100644 --- a/modules/nixos/setup.nix +++ b/modules/nixos/setup.nix @@ -8,6 +8,10 @@ in type = types.str; default = ""; }; + options.swarselsystems.withHomeManager = mkOption { + type = types.bool; + default = true; + }; options.swarselsystems.initialSetup = lib.mkEnableOption "initial setup (no sops keys available)"; options.swarselsystems.server.enable = lib.mkEnableOption "is a server machine"; options.swarselsystems.server.kavita = lib.mkEnableOption "enable kavita on server"; diff --git a/profiles/common/nixos/home-manager.nix b/profiles/common/nixos/home-manager.nix index 5fcba0e..95cc48f 100644 --- a/profiles/common/nixos/home-manager.nix +++ b/profiles/common/nixos/home-manager.nix @@ -1,6 +1,6 @@ -{ inputs, ... }: +{ inputs, config, lib, ... }: { - home-manager = { + home-manager = lib.mkIf config.swarselsystems.withHomeManager { useGlobalPkgs = true; useUserPackages = true; extraSpecialArgs = inputs; # used mainly for inputs.self