summaryrefslogtreecommitdiff
path: root/util/host.nix
blob: 786e4609d176bff4210fc3ea246049090e99779c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{home-manager, ...}: {
  mkHost = {
    name,
    modules,
    system ? "x86_64-linux",
    specialArgs ? {},
    version ? "22.11",
    pkgs,
  }: {
    ${name} = with pkgs.lib;
      nixosSystem {
        inherit system specialArgs;
        modules =
          [
            ../hosts/common
            ../hosts/${name}

            ({pkgs, ...}: {
              system.stateVersion = version;
              networking.hostName = mkDefault name;
              # enable non-free packages
              nixpkgs.config.allowUnfree = true;

              # Enable nix flakes
              nix = {
                package = pkgs.nixFlakes;
                settings.experimental-features = ["nix-command" "flakes"];
              };
            })

            home-manager.nixosModules.home-manager
            {
              home-manager = {
                useGlobalPkgs = true;
                useUserPackages = true;
                extraSpecialArgs = specialArgs;
              };
            }
          ]
          ++ modules;
      };
  };
}