{ description = "Rosa's NixOS configurations"; inputs = { disko = { inputs.nixpkgs.follows = "nixpkgs"; url = "github:nix-community/disko"; }; home-manager = { inputs.nixpkgs.follows = "nixpkgs"; url = "github:nix-community/home-manager"; }; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; }; outputs = { self, disko, home-manager, nixpkgs, }: let pkgs = nixpkgs.legacyPackages.x86_64-linux; mkSystem = { hostName, system, # Whether to create the default user account. This account will be # in the wheel group, and has an empty default password! makeDefaultUser ? true, useHomeManager ? true, additionalModules ? [ ], }: nixpkgs.lib.nixosSystem { modules = [ ./common/core.nix ./hosts/${hostName} ./modules # include custom system modules { networking.hostName = hostName; } ] ++ nixpkgs.lib.optional makeDefaultUser ./user ++ nixpkgs.lib.optional useHomeManager home-manager.nixosModules.home-manager ++ nixpkgs.lib.optional useHomeManager ./user/home ++ additionalModules; inherit system; }; in { formatter.x86_64-linux = pkgs.nixfmt; nixosConfigurations = { limbo = mkSystem { additionalModules = [ disko.nixosModules.disko ]; hostName = "limbo"; system = "x86_64-linux"; }; }; }; }