rec { description = "TimmyOS System Config"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; arkenfox = { url = "github:dwarfmaster/arkenfox-nixos"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, ... }@inputs : let system = "x86_64-linux"; extLib = nixpkgs.lib.extend (final: prev: import ./lib); mkNixosConfiguration = hostname: nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs; inherit hostname; lib = extLib; }; modules = [ ./hosts/${hostname}/configuration.nix ./hosts/${hostname}/hardware-configuration.nix ./archetypes ./nixos ./pkgs ./users inputs.sops-nix.nixosModules.sops inputs.home-manager.nixosModules.home-manager { home-manager = { backupFileExtension = "backup"; # In case file is overwritten useGlobalPkgs = true; useUserPackages = true; sharedModules = [ inputs.arkenfox.hmModules.arkenfox ./home-manager ]; }; } ]; }; in { nixosConfigurations = builtins.listToAttrs (map (hostname: { name = hostname; value = mkNixosConfiguration hostname; }) [ # Configured system hostnames go here "T495" "X230" "flex-wg-router" "hp-envy-office" "libreX60" "optiplex" "poweredge" ]); }; }