diff options
| -rw-r--r-- | accounts/gkleen@sif/hyprland.nix | 1 | ||||
| -rw-r--r-- | flake.nix | 5 | ||||
| -rw-r--r-- | hosts/surtr/default.nix | 2 | ||||
| -rw-r--r-- | installer/default.nix | 1 | ||||
| -rw-r--r-- | system-profiles/core/default.nix | 34 |
5 files changed, 33 insertions, 10 deletions
diff --git a/accounts/gkleen@sif/hyprland.nix b/accounts/gkleen@sif/hyprland.nix index 3b2f8879..645a2f22 100644 --- a/accounts/gkleen@sif/hyprland.nix +++ b/accounts/gkleen@sif/hyprland.nix | |||
| @@ -300,6 +300,7 @@ in { | |||
| 300 | "workspace 1, class:^Element$" | 300 | "workspace 1, class:^Element$" |
| 301 | "workspace 1, class:^thunderbird$" | 301 | "workspace 1, class:^thunderbird$" |
| 302 | "workspace 5, class:^virt-manager$" | 302 | "workspace 5, class:^virt-manager$" |
| 303 | "workspace 5, class:^qemu$" | ||
| 303 | "float, class:^org\.keepassxc\.KeePassXC$, title:Access Request$" | 304 | "float, class:^org\.keepassxc\.KeePassXC$, title:Access Request$" |
| 304 | "center, class:^org\.keepassxc\.KeePassXC$, title:Access Request$" | 305 | "center, class:^org\.keepassxc\.KeePassXC$, title:Access Request$" |
| 305 | "float, class:^org\.keepassxc\.KeePassXC$, title:^Unlock Database" | 306 | "float, class:^org\.keepassxc\.KeePassXC$, title:^Unlock Database" |
| @@ -286,6 +286,7 @@ | |||
| 286 | forAllUsers = genAttrs (unique (map accountUserName (attrNames self.nixosModules.accounts))); | 286 | forAllUsers = genAttrs (unique (map accountUserName (attrNames self.nixosModules.accounts))); |
| 287 | 287 | ||
| 288 | activateNixosConfigurations = forAllSystems (system: _pkgs: filterAttrs (_n: v: v != null) (mapAttrs' (hostName: nixosConfig: nameValuePair "${hostName}-activate" (if system == nixosConfig.config.nixpkgs.system then { type = "app"; program = "${nixosConfig.config.system.build.toplevel}/bin/switch-to-configuration"; } else null)) self.nixosConfigurations)); | 288 | activateNixosConfigurations = forAllSystems (system: _pkgs: filterAttrs (_n: v: v != null) (mapAttrs' (hostName: nixosConfig: nameValuePair "${hostName}-activate" (if system == nixosConfig.config.nixpkgs.system then { type = "app"; program = "${nixosConfig.config.system.build.toplevel}/bin/switch-to-configuration"; } else null)) self.nixosConfigurations)); |
| 289 | startVMs = forAllSystems (system: pkgs: mapAttrs' (hostName: nixosConfig: nameValuePair "run-${hostName}-vm" { type = "app"; program = "${nixosConfig.config.system.build.vm}/bin/run-${hostName}-vm"; }) (nixImport rec { dir = ./hosts; _import = mkNixosConfiguration [ { config.virtualisation.host.pkgs = pkgs; } ] dir; })); | ||
| 289 | activateHomeManagerConfigurations = forAllSystems (system: _pkgs: filterAttrs (_n: v: v != null) (listToAttrs (concatLists (mapAttrsToList (hostName: nixosConfig: mapAttrsToList (userName: userCfg: nameValuePair "${userName}@${hostName}-activate" (if system == nixosConfig.config.nixpkgs.system then { type = "app"; program = "${userCfg.home.activationPackage}/activate"; } else null)) nixosConfig.config.home-manager.users) self.nixosConfigurations)))); | 290 | activateHomeManagerConfigurations = forAllSystems (system: _pkgs: filterAttrs (_n: v: v != null) (listToAttrs (concatLists (mapAttrsToList (hostName: nixosConfig: mapAttrsToList (userName: userCfg: nameValuePair "${userName}@${hostName}-activate" (if system == nixosConfig.config.nixpkgs.system then { type = "app"; program = "${userCfg.home.activationPackage}/activate"; } else null)) nixosConfig.config.home-manager.users) self.nixosConfigurations)))); |
| 290 | installerShells = system: pkgs: mapAttrs (installerName: config: pkgs.callPackage ./installer/shell.nix { | 291 | installerShells = system: pkgs: mapAttrs (installerName: config: pkgs.callPackage ./installer/shell.nix { |
| 291 | inherit system installerName config; | 292 | inherit system installerName config; |
| @@ -302,7 +303,7 @@ | |||
| 302 | mkInstallerForSystem = system: (lib.systems.elaborate system).isLinux; | 303 | mkInstallerForSystem = system: (lib.systems.elaborate system).isLinux; |
| 303 | installers = | 304 | installers = |
| 304 | let mkInstallers = system: mapAttrs (mkInstaller system) installerProfiles; | 305 | let mkInstallers = system: mapAttrs (mkInstaller system) installerProfiles; |
| 305 | mkInstaller = system: name: profile: mkNixosConfiguration [profile { config = { nixpkgs.system = system; }; }] ./. installerConfig "installer"; | 306 | mkInstaller = system: name: profile: mkNixosConfiguration [profile { config.nixpkgs.system = system; }] ./. installerConfig "installer"; |
| 306 | in forAllSystems (system: _systemPkgs: optionalAttrs (!(isNull installerConfig) && mkInstallerForSystem system) (mkInstallers system)); | 307 | in forAllSystems (system: _systemPkgs: optionalAttrs (!(isNull installerConfig) && mkInstallerForSystem system) (mkInstallers system)); |
| 307 | installerNixosConfigurations = listToAttrs (concatLists (mapAttrsToList (system: mapAttrsToList (profile: config: nameValuePair ("installer-${system}-${profile}") config)) installers)); | 308 | installerNixosConfigurations = listToAttrs (concatLists (mapAttrsToList (system: mapAttrsToList (profile: config: nameValuePair ("installer-${system}-${profile}") config)) installers)); |
| 308 | 309 | ||
| @@ -333,7 +334,7 @@ | |||
| 333 | 334 | ||
| 334 | legacyPackages = forAllSystems (system: systemPkgs: systemPkgs.override { overlays = attrValues self.overlays; }); | 335 | legacyPackages = forAllSystems (system: systemPkgs: systemPkgs.override { overlays = attrValues self.overlays; }); |
| 335 | 336 | ||
| 336 | apps = foldr recursiveUpdate {} [activateNixosConfigurations activateHomeManagerConfigurations]; | 337 | apps = foldr recursiveUpdate {} [startVMs activateNixosConfigurations activateHomeManagerConfigurations]; |
| 337 | 338 | ||
| 338 | devShells = forAllSystems (system: systemPkgs: { default = import ./shell.nix ({ inherit system; } // inputs); } // installerShells system systemPkgs); | 339 | devShells = forAllSystems (system: systemPkgs: { default = import ./shell.nix ({ inherit system; } // inputs); } // installerShells system systemPkgs); |
| 339 | 340 | ||
diff --git a/hosts/surtr/default.nix b/hosts/surtr/default.nix index ceb035cb..705f69b3 100644 --- a/hosts/surtr/default.nix +++ b/hosts/surtr/default.nix | |||
| @@ -166,6 +166,8 @@ with lib; | |||
| 166 | }; | 166 | }; |
| 167 | 167 | ||
| 168 | systemd.sysusers.enable = false; | 168 | systemd.sysusers.enable = false; |
| 169 | system.etc.overlay.mutable = true; | ||
| 170 | boot.enableContainers = true; | ||
| 169 | system.stateVersion = "20.09"; | 171 | system.stateVersion = "20.09"; |
| 170 | }; | 172 | }; |
| 171 | } | 173 | } |
diff --git a/installer/default.nix b/installer/default.nix index e9d9fa1a..d5e0fc07 100644 --- a/installer/default.nix +++ b/installer/default.nix | |||
| @@ -57,6 +57,7 @@ with lib; | |||
| 57 | 57 | ||
| 58 | system.disableInstallerTools = false; | 58 | system.disableInstallerTools = false; |
| 59 | 59 | ||
| 60 | systemd.sysusers.enable = false; | ||
| 60 | system.stateVersion = config.system.nixos.release; # No state in installer | 61 | system.stateVersion = config.system.nixos.release; # No state in installer |
| 61 | }; | 62 | }; |
| 62 | } | 63 | } |
diff --git a/system-profiles/core/default.nix b/system-profiles/core/default.nix index fede386b..71d0619a 100644 --- a/system-profiles/core/default.nix +++ b/system-profiles/core/default.nix | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | { flake, flakeInputs, home-manager, path, hostName, config, lib, pkgs, customUtils, ... }: | 1 | { flake, flakeInputs, home-manager, path, hostName, config, options, lib, pkgs, customUtils, ... }: |
| 2 | 2 | ||
| 3 | with lib; | 3 | with lib; |
| 4 | 4 | ||
| @@ -83,11 +83,22 @@ in { | |||
| 83 | ''; | 83 | ''; |
| 84 | }; | 84 | }; |
| 85 | 85 | ||
| 86 | nixpkgs.flakeInput = mkOption { | 86 | nixpkgs = { |
| 87 | type = types.enum (attrNames flakeInputs); | 87 | flakeInput = mkOption { |
| 88 | default = if flakeInputs ? "nixpkgs-${hostName}" then "nixpkgs-${hostName}" else "nixpkgs"; | 88 | type = types.enum (attrNames flakeInputs); |
| 89 | defaultText = literalExpression ''if flakeInputs ? "nixpkgs-''${hostName}" then "nixpkgs-''${hostName}" else "nixpkgs"''; | 89 | default = if flakeInputs ? "nixpkgs-${hostName}" then "nixpkgs-${hostName}" else "nixpkgs"; |
| 90 | internal = true; | 90 | defaultText = literalExpression ''if flakeInputs ? "nixpkgs-''${hostName}" then "nixpkgs-''${hostName}" else "nixpkgs"''; |
| 91 | internal = true; | ||
| 92 | }; | ||
| 93 | extraOverlays = mkOption { | ||
| 94 | default = []; | ||
| 95 | type = types.listOf (mkOptionType { | ||
| 96 | name = "nixpkgs-overlay"; | ||
| 97 | description = "nixpkgs overlay"; | ||
| 98 | check = lib.isFunction; | ||
| 99 | merge = lib.mergeOneOption; | ||
| 100 | }); | ||
| 101 | }; | ||
| 91 | }; | 102 | }; |
| 92 | }; | 103 | }; |
| 93 | 104 | ||
| @@ -97,7 +108,7 @@ in { | |||
| 97 | system.configurationRevision = mkIf (flake ? rev) flake.rev; | 108 | system.configurationRevision = mkIf (flake ? rev) flake.rev; |
| 98 | 109 | ||
| 99 | nixpkgs.pkgs = import (flakeInputs.${config.nixpkgs.flakeInput}.outPath + "/pkgs/top-level") { | 110 | nixpkgs.pkgs = import (flakeInputs.${config.nixpkgs.flakeInput}.outPath + "/pkgs/top-level") { |
| 100 | overlays = attrValues flake.overlays; | 111 | overlays = attrValues flake.overlays ++ config.nixpkgs.extraOverlays; |
| 101 | config = config.nixpkgs.externalConfig; | 112 | config = config.nixpkgs.externalConfig; |
| 102 | localSystem = config.nixpkgs.system; | 113 | localSystem = config.nixpkgs.system; |
| 103 | }; | 114 | }; |
| @@ -131,7 +142,7 @@ in { | |||
| 131 | }; | 142 | }; |
| 132 | 143 | ||
| 133 | systemd.tmpfiles.rules = [ | 144 | systemd.tmpfiles.rules = [ |
| 134 | "L+ /run/nixpkgs - - - - ${flakeInputs.nixpkgs.outPath}" | 145 | "L+ /run/nixpkgs - - - - ${flakeInputs.${config.nixpkgs.flakeInput}.outPath}" |
| 135 | "L+ /run/nixpkgs-overlays.nix - - - - ${pkgs.writeText "overlays.nix" '' | 146 | "L+ /run/nixpkgs-overlays.nix - - - - ${pkgs.writeText "overlays.nix" '' |
| 136 | with builtins; | 147 | with builtins; |
| 137 | 148 | ||
| @@ -200,6 +211,7 @@ in { | |||
| 200 | ++ (optional (options ? system.etc) { | 211 | ++ (optional (options ? system.etc) { |
| 201 | boot.initrd.systemd.enable = lib.mkDefault true; | 212 | boot.initrd.systemd.enable = lib.mkDefault true; |
| 202 | system.etc.overlay.enable = lib.mkDefault true; | 213 | system.etc.overlay.enable = lib.mkDefault true; |
| 214 | system.etc.overlay.mutable = lib.mkDefault (!config.systemd.sysusers.enable); | ||
| 203 | systemd.sysusers.enable = lib.mkDefault true; | 215 | systemd.sysusers.enable = lib.mkDefault true; |
| 204 | 216 | ||
| 205 | # Random perl remnants | 217 | # Random perl remnants |
| @@ -210,5 +222,11 @@ in { | |||
| 210 | boot.loader.grub.enable = lib.mkDefault false; | 222 | boot.loader.grub.enable = lib.mkDefault false; |
| 211 | environment.defaultPackages = lib.mkDefault [ ]; | 223 | environment.defaultPackages = lib.mkDefault [ ]; |
| 212 | documentation.info.enable = lib.mkDefault false; | 224 | documentation.info.enable = lib.mkDefault false; |
| 225 | }) | ||
| 226 | ++ (optional (options ? nixpkgs.flake) { | ||
| 227 | nixpkgs.flake = { | ||
| 228 | setNixPath = false; | ||
| 229 | setFlakeRegistry = false; | ||
| 230 | }; | ||
| 213 | })); | 231 | })); |
| 214 | } | 232 | } |
