diff --git a/hosts/othalan/default.nix b/hosts/othalan/default.nix index bb84bf6..e02632d 100644 --- a/hosts/othalan/default.nix +++ b/hosts/othalan/default.nix @@ -4,7 +4,8 @@ lib, ... }: let - inherit (lib) enabled; + inherit (lib) enabled enableAttrs; + in { imports = with self.nixosModules; [ restic @@ -18,13 +19,21 @@ in { "tex" "node" ]; - nix-ld = enabled; - docker = enabled; - vbox = enabled; - desktop = enabled; - vpn = enabled; - chrome = enabled; - }; + } // enableAttrs [ + "chrome" + "desktop" + "docker" + "nix-ld" + "vbox" + "vpn" + ]; + # nix-ld = enabled; + # docker = enabled; + # vbox = enabled; + # desktop = enabled; + # vpn = enabled; + # chrome = enabled; + # }; environment.systemPackages = with pkgs; [ zk diff --git a/lib/extended.nix b/lib/extended.nix index 9598079..f3e32e4 100644 --- a/lib/extended.nix +++ b/lib/extended.nix @@ -1,9 +1,15 @@ final: prev: let inherit (final) hasSuffix; runes = import ../modules/runes; -in { +in rec { enabled = {enable = true;}; disabled = {enable = false;}; + + # ["a" "b"] -> {a.enable = true; b.enable = true;} + enableAttrs = attrs: builtins.listToAttrs (map (attr: {name = attr; value = enabled; }) attrs); + # ["a" "b"] -> {a.enable = false; b.enable = false;} + disableAttrs = attrs: builtins.listToAttrs (map (attr: {name = attr; value = disabled; }) attrs); + isNixFile = path: hasSuffix ".nix" path; mkIfIn = name: list: prev.mkIf (builtins.elem name list); mkRune = {