{ description = "My System Configs"; inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; i3utils.url = "git+https://git.sr.ht/~dpatterbee/i3utils?ref=main"; home-manager.url = "github:nix-community/home-manager/master"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { nixpkgs, home-manager, i3utils, ... }: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; }; lib = nixpkgs.lib; hostSystem = { hostname, headless }: lib.nixosSystem { inherit system; modules = [ ./hosts/${hostname}/configuration.nix ({ pkgs, ... }: { nixpkgs.overlays = [ i3utils.overlay ]; }) home-manager.nixosModules.home-manager { home-manager = { useGlobalPkgs = true; users = import ./users; extraSpecialArgs = {inherit hostname; inherit headless;}; }; } ]; }; in { nixosConfigurations = { dingbox = hostSystem { hostname = "dingbox"; headless = false; }; miniding = hostSystem { hostname = "miniding"; headless = false; }; pingbox = hostSystem { hostname = "pingbox"; headless = false; }; dingserver = hostSystem { hostname = "dingserver"; headless = true; }; }; }; }