{ nixpkgs }:
    name :
        { dualBoot ? false } :
            let
                lib = nixpkgs.lib;
                configPath = ./machines/${name}.nix;
                machineConfig =
                    if builtins.pathExists configPath then
                        configPath
                    else
                        ./hardware/base.nix;
            in
                lib.nixosSystem {
                    system = "x86_64-linux";
                    modules = [
                        (
                            { config, pkgs, lib, ... }: {
                                imports = [
                                    machineConfig
                                    ./config/custom-build-vm.nix
                                ];

                                # Networking
                                networking.hostName = name;
                            })
                    ];
                }