diff --git a/aspects/constants.nix b/aspects/constants.nix index 5a82660..7d77098 100644 --- a/aspects/constants.nix +++ b/aspects/constants.nix @@ -1,9 +1,4 @@ -{ - inputs, - lib, - config, - ... -}: +{ lib, config, ... }: let # Host submodule type @@ -137,81 +132,6 @@ in local-data = lanData; } ]; - # Generates flake.homeConfigurations - mkHomeConfiguration = - { - user, - hostname, - system ? "x86_64-linux", - stateVersion ? "22.05", - nixpkgs ? inputs.nixpkgs, # override with e.g. inputs.nixpkgs-stable - userModules ? [ ], - overlays ? [ inputs.self.overlays.default ], - homeManagerModules ? with inputs.self.modules.homeManager; [ - base - cli - ], - userDirectory ? "/home/${user}", - }: - inputs.home-manager.lib.homeManagerConfiguration { - pkgs = nixpkgs.legacyPackages.${system}; - - extraSpecialArgs = { - inherit inputs hostname; - }; - - modules = [ - { nixpkgs.overlays = overlays; } - { - home = { - username = user; - homeDirectory = userDirectory; - inherit stateVersion; - }; - } - ((inputs.import-tree.initFilter (p: lib.hasSuffix ".nix" p)) - "/${inputs.self}/aspects/users/_${user}" - ) - ] - ++ homeManagerModules - ++ userModules; - }; - # Generates flake.nixosConfigurations - mkHost = - { - hostname, - system ? "x86_64-linux", - nixpkgs ? inputs.nixpkgs, - overlays ? [ - inputs.agenix.overlays.default - inputs.self.overlays.default - ], - ephemeralRootDev ? null, # pass rootDevice string to enable, e.g. ephemeralephemeralRootDev = "/dev/mapper/cryptroot" - nixosModules ? with inputs.self.modules.nixos; [ - base - cli - user - root - ], - extraModules ? [ ], - }: - nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = { inherit inputs; }; - modules = [ - inputs.agenix.nixosModules.default - { networking.hostName = hostname; } - { nixpkgs.overlays = overlays; } - ((inputs.import-tree.initFilter (p: lib.hasSuffix ".nix" p)) - "${inputs.self}/aspects/hosts/_${hostname}" - ) - ] - ++ (lib.optional (ephemeralRootDev != null) ( - inputs.self.factory.ephemeral { rootDevice = ephemeralRootDev; } - )) - ++ nixosModules - ++ extraModules; - }; }; }; } diff --git a/aspects/hosts/alexandria.nix b/aspects/hosts/alexandria.nix index be5027e..55867fa 100644 --- a/aspects/hosts/alexandria.nix +++ b/aspects/hosts/alexandria.nix @@ -1,19 +1,33 @@ -{ inputs, ... }: - -let - mkHost = inputs.self.lib.mkHost; -in +{ inputs, lib, ... }: { - flake.nixosConfigurations.alexandria = mkHost { - hostname = "alexandria"; - nixpkgs = inputs.nixpkgs-stable; - extraModules = with inputs.self.modules.nixos; [ - # base aspects + flake.nixosConfigurations.alexandria = inputs.nixpkgs-stable.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = [ + inputs.agenix.nixosModules.default + { networking.hostName = "alexandria"; } + { + nixpkgs.overlays = [ + inputs.agenix.overlays.default + inputs.self.overlays.default + ]; + } + ((inputs.import-tree.initFilter (p: lib.hasSuffix ".nix" p)) ./_alexandria) + ] + ++ (with inputs.self.modules.nixos; [ + # system aspects + base + cli server + + # user aspects + user + root + # other aspects fwupd libvirtd - ]; + ]); }; } diff --git a/aspects/hosts/io.nix b/aspects/hosts/io.nix index eb127b0..6944555 100644 --- a/aspects/hosts/io.nix +++ b/aspects/hosts/io.nix @@ -1,17 +1,34 @@ -{ inputs, ... }: - -let - mkHost = inputs.self.lib.mkHost; -in +{ inputs, lib, ... }: { - flake.nixosConfigurations.io = mkHost { - hostname = "io"; - ephemeral = "/dev/mapper/cryptroot"; - extraModules = with inputs.self.modules.nixos; [ - # base aspects + flake.nixosConfigurations.io = inputs.nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = [ + inputs.agenix.nixosModules.default + { networking.hostName = "io"; } + { + nixpkgs.overlays = [ + inputs.agenix.overlays.default + inputs.self.overlays.default + ]; + } + ((inputs.import-tree.initFilter (p: lib.hasSuffix ".nix" p)) ./_io) + (inputs.self.factory.ephemeral { + rootDevice = "/dev/mapper/cryptroot"; + }) + ] + ++ (with inputs.self.modules.nixos; [ + # system aspects + base + cli desktop - # other aspects + + # user aspects + user + root + + # Other aspects ai bluetooth dev @@ -19,6 +36,6 @@ in networkmanager niri podman - ]; + ]); }; } diff --git a/aspects/hosts/rotterdam.nix b/aspects/hosts/rotterdam.nix index a10e3a4..1c177e4 100644 --- a/aspects/hosts/rotterdam.nix +++ b/aspects/hosts/rotterdam.nix @@ -1,17 +1,34 @@ -{ inputs, ... }: - -let - mkHost = inputs.self.lib.mkHost; -in +{ inputs, lib, ... }: { - flake.nixosConfigurations.rotterdam = mkHost { - hostname = "rotterdam"; - ephemeral = "/dev/mapper/cryptroot"; - extraModules = with inputs.self.modules.nixos; [ - # base aspects + flake.nixosConfigurations.rotterdam = inputs.nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = [ + inputs.agenix.nixosModules.default + { networking.hostName = "rotterdam"; } + { + nixpkgs.overlays = [ + inputs.agenix.overlays.default + inputs.self.overlays.default + ]; + } + ((inputs.import-tree.initFilter (p: lib.hasSuffix ".nix" p)) ./_rotterdam) + (inputs.self.factory.ephemeral { + rootDevice = "/dev/mapper/cryptroot"; + }) + ] + ++ (with inputs.self.modules.nixos; [ + # system aspects + base + cli desktop gaming + + # user aspects + user + root + # other aspects ai bluetooth @@ -21,6 +38,6 @@ in networkmanager niri podman - ]; + ]); }; } diff --git a/aspects/hosts/trantor.nix b/aspects/hosts/trantor.nix index 8457e4a..076672c 100644 --- a/aspects/hosts/trantor.nix +++ b/aspects/hosts/trantor.nix @@ -1,18 +1,31 @@ -{ inputs, ... }: - -let - mkHost = inputs.self.lib.mkHost; -in - +{ inputs, lib, ... }: { - flake.nixosConfigurations.trantor = mkHost { - hostname = "trantor"; + flake.nixosConfigurations.trantor = inputs.nixpkgs-stable.lib.nixosSystem { system = "aarch64-linux"; - nixpkgs = inputs.nixpkgs-stable; - ephemeral = "/dev/disk/by-id/scsi-360b207ed25d84372a95d1ecf842f8e20-part2"; - extraModules = with inputs.self.modules.nixos; [ - # base aspects + specialArgs = { inherit inputs; }; + modules = [ + inputs.agenix.nixosModules.default + { networking.hostName = "trantor"; } + { + nixpkgs.overlays = [ + inputs.agenix.overlays.default + inputs.self.overlays.default + ]; + } + ((inputs.import-tree.initFilter (p: lib.hasSuffix ".nix" p)) ./_trantor) + (inputs.self.factory.ephemeral { + rootDevice = "/dev/disk/by-id/scsi-360b207ed25d84372a95d1ecf842f8e20-part2"; + }) + ] + ++ (with inputs.self.modules.nixos; [ + # system aspects + base + cli server - ]; + + # user aspects + user + root + ]); }; } diff --git a/aspects/users/user.nix b/aspects/users/user.nix index 86bcddb..e3f8530 100644 --- a/aspects/users/user.nix +++ b/aspects/users/user.nix @@ -1,55 +1,22 @@ -{ inputs, ... }: - -let - mkHomeConfiguration = inputs.self.lib.mkHomeConfiguration; -in +{ ... }: { - flake = { - modules.nixos.user = - { pkgs, ... }: - { - users.users.user = { - isNormalUser = true; - shell = pkgs.fish; - extraGroups = [ - "networkmanager" - "wheel" - ]; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICQPkAyy+Du9Omc2WtnUF2TV8jFAF4H6mJi2D4IZ1nzg user@himalia" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3Y0PVpGfJHonqDS7qoCFhqzUvqGq9I9sax+F9e/5cs user@io" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA1v3+q3EaruiiStWjubEJWvtejam/r41uoOpCdwJtLL user@rotterdam" - ]; - hashedPassword = "$6$Pj7v/CpstyuWQQV0$cNujVDhfMBdwlGVEnnd8t71.kZPixbo0u25cd.874iaqLTH4V5fa1f98V5zGapjQCz5JyZmsR94xi00sUrntT0"; - }; - }; - homeConfigurations = { - "user@rotterdam" = mkHomeConfiguration { - user = "user"; - hostname = "rotterdam"; - userModules = with inputs.self.modules.homeManager; [ - # system aspects - desktop - gaming - - # other aspects - stylix - niri + flake.modules.nixos.user = + { pkgs, ... }: + { + users.users.user = { + isNormalUser = true; + shell = pkgs.fish; + extraGroups = [ + "networkmanager" + "wheel" ]; - }; - "user@io" = mkHomeConfiguration { - user = "user"; - hostname = "io"; - userModules = with inputs.self.modules.homeManager; [ - # system aspects - desktop - - # other aspects - stylix - niri + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICQPkAyy+Du9Omc2WtnUF2TV8jFAF4H6mJi2D4IZ1nzg user@himalia" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3Y0PVpGfJHonqDS7qoCFhqzUvqGq9I9sax+F9e/5cs user@io" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA1v3+q3EaruiiStWjubEJWvtejam/r41uoOpCdwJtLL user@rotterdam" ]; + hashedPassword = "$6$Pj7v/CpstyuWQQV0$cNujVDhfMBdwlGVEnnd8t71.kZPixbo0u25cd.874iaqLTH4V5fa1f98V5zGapjQCz5JyZmsR94xi00sUrntT0"; }; }; - }; } diff --git a/aspects/users/user_io.nix b/aspects/users/user_io.nix new file mode 100644 index 0000000..c956b1c --- /dev/null +++ b/aspects/users/user_io.nix @@ -0,0 +1,32 @@ +{ inputs, lib, ... }: + +{ + flake."user@io" = inputs.home-manager.lib.homeManagerConfiguration { + pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux; + extraSpecialArgs = { + inherit inputs; + hostname = "io"; + }; + modules = [ + { nixpkgs.overlays = [ inputs.self.overlays.default ]; } + { + home = { + username = "user"; + homeDirectory = "/home/user"; + stateVersion = "22.05"; + }; + } + ((inputs.import-tree.initFilter (p: lib.hasSuffix ".nix" p)) ./_user) + ] + ++ (with inputs.self.modules.homeManager; [ + # system aspects + base + cli + desktop + + # other aspect + stylix + niri + ]); + }; +} diff --git a/aspects/users/user_rotterdam.nix b/aspects/users/user_rotterdam.nix new file mode 100644 index 0000000..56b2dc1 --- /dev/null +++ b/aspects/users/user_rotterdam.nix @@ -0,0 +1,35 @@ +{ inputs, lib, ... }: + +{ + flake.homeConfigurations = { + "user@rotterdam" = inputs.home-manager.lib.homeManagerConfiguration { + pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux; + extraSpecialArgs = { + inherit inputs; + hostname = "rotterdam"; + }; + modules = [ + { nixpkgs.overlays = [ inputs.self.overlays.default ]; } + { + home = { + username = "user"; + homeDirectory = "/home/user"; + stateVersion = "22.05"; + }; + } + ((inputs.import-tree.initFilter (p: lib.hasSuffix ".nix" p)) ./_user) + ] + ++ (with inputs.self.modules.homeManager; [ + # system aspects + base + cli + desktop + gaming + + # other aspects + stylix + niri + ]); + }; + }; +}