{ self, agenix, disko, home-manager, homepage, lanzaboote, nixos-hardware, nixos-generators, nixpkgs, ... }@inputs: let # create a new instance allowing some unfree packages nixpkgsx86 = import nixpkgs { system = "x86_64-linux"; config.allowUnfreePredicate = pkg: builtins.elem (nixpkgs.lib.getName pkg) [ "aspell-dict-en-science" "brgenml1lpr" "saleae-logic-2" "spotify" ]; }; nixosSystem = nixpkgs.lib.nixosSystem; baseModule = { lib, ... }: { _module.args.inputs = inputs; imports = [ inputs.agenix.nixosModules.age inputs.disko.nixosModules.disko inputs.home-manager.nixosModules.home-manager ( { pkgs, ... }: { dadada.homepage.package = homepage; dadada.pkgs = inputs.self.packages.${pkgs.system}; dadada.inputs = inputs // { dadada = inputs.self; }; } ) inputs.lanzaboote.nixosModules.lanzaboote ] ++ (lib.attrValues inputs.self.nixosModules); }; homeModule = ./modules/profiles/home.nix; in { stolas = nixosSystem { modules = [ { nixpkgs.pkgs = nixpkgsx86; } baseModule nixos-hardware.nixosModules.framework-amd-ai-300-series homeModule ./stolas ]; }; gorgon = nixosSystem { modules = [ { nixpkgs.pkgs = nixpkgsx86; } baseModule nixos-hardware.nixosModules.lenovo-thinkpad-t14s-amd-gen1 homeModule ./gorgon/configuration.nix ]; }; surgat = nixosSystem { modules = [ { nixpkgs.pkgs = nixpkgsx86; } baseModule ./surgat/configuration.nix ]; }; installer = nixosSystem { modules = [ nixos-generators.nixosModules.install-iso inputs.self.nixosModules.admin ( { lib, ... }: { nixpkgs.pkgs = nixpkgs.legacyPackages."x86_64-linux"; isoImage.isoName = lib.mkForce "dadada-nixos-installer.iso"; networking.tempAddresses = "disabled"; dadada.admin.enable = true; documentation.enable = true; documentation.nixos.enable = true; i18n.defaultLocale = "en_US.UTF-8"; console = { font = "Lat2-Terminus16"; keyMap = "us"; }; } ) ]; }; ninurta = nixosSystem { modules = [ { nixpkgs.pkgs = nixpkgsx86; } baseModule ./ninurta/configuration.nix ]; }; }