68 lines
1.5 KiB
Nix
68 lines
1.5 KiB
Nix
{
|
|
inputs,
|
|
lib,
|
|
system,
|
|
specialArgs,
|
|
dots,
|
|
user ? "rayandrew",
|
|
...
|
|
}:
|
|
let
|
|
mkNixosConfiguration =
|
|
host:
|
|
{
|
|
pkgs ? (
|
|
import inputs.nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
}
|
|
),
|
|
}:
|
|
lib.nixosSystem {
|
|
inherit pkgs;
|
|
|
|
specialArgs = specialArgs // {
|
|
inherit host user dots;
|
|
};
|
|
|
|
modules = [
|
|
inputs.disko.nixosModules.default
|
|
./${host}
|
|
./${host}/hardware.nix
|
|
../nixos
|
|
({config, ...}: {
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
|
|
extraSpecialArgs = specialArgs // {
|
|
inherit host user system dots;
|
|
home-dir = config.home-manager.users.${user}.home.homeDirectory;
|
|
};
|
|
|
|
users.${user} = {
|
|
imports = [
|
|
inputs.nix-index-database.hmModules.nix-index
|
|
inputs.sops-nix.homeManagerModules.sops
|
|
../home
|
|
] ++ lib.optional(builtins.pathExists ./${host}/home.nix) ./${host}/home.nix;
|
|
};
|
|
};
|
|
})
|
|
# alias for home-manager
|
|
(lib.mkAliasOptionModule [ "hm" ] [
|
|
"home-manager"
|
|
"users"
|
|
user
|
|
])
|
|
inputs.home-manager.nixosModules.home-manager
|
|
inputs.sops-nix.nixosModules.sops
|
|
];
|
|
};
|
|
in
|
|
{
|
|
nixosConfigurations = {
|
|
pickwick = mkNixosConfiguration "pickwick" { };
|
|
lemur = mkNixosConfiguration "lemur" { };
|
|
};
|
|
}
|