cornflake/hosts/mkHost.nix
2026-02-28 19:42:36 +09:00

58 lines
1.2 KiB
Nix

inputs:
{
system,
hostname,
users,
systemModules,
}:
let
pkgs = import inputs.nixpkgs {
inherit system;
config.allowUnfree = true;
};
in
{
nixos = inputs.nixpkgs.lib.nixosSystem {
modules = systemModules ++ [
{
users.users = builtins.listToAttrs (map (u: {
name = u.username;
value = {
isNormalUser = true;
description = "";
extraGroups = [
"networkmanager"
"wheel"
];
};
}) users);
}
];
inherit system;
specialArgs = {
inherit inputs hostname;
username = (builtins.head users).username;
};
};
home-manager = builtins.listToAttrs (map (u: {
name = "${u.username}@${hostname}";
value = inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit inputs hostname;
username = u.username;
};
modules = [
{
home = {
username = u.username;
homeDirectory = "/home/${u.username}";
};
programs.home-manager.enable = true;
}
(import ../system/home-manager)
] ++ u.homeModule;
};
}) users);
}