nix-v0/src/hosts/default.nix
2024-11-16 18:53:59 -06:00

72 lines
1.7 KiB
Nix

{
inputs,
lib,
system,
specialArgs,
user ? "rayandrew",
...
}:
let
# provide an optional { pkgs } 2nd argument to override the pkgs
mkNixosConfiguration =
host:
{
pkgs ? (
import inputs.nixpkgs {
inherit system;
config.allowUnfree = true;
}
),
}:
lib.nixosSystem {
inherit pkgs;
specialArgs = specialArgs // {
inherit host user;
isNixOS = true;
dots = "/persist/home/${user}/code/nix-config";
};
modules = [
inputs.disko.nixosModules.default
./${host}
./${host}/hardware.nix
../nixos
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = specialArgs // {
inherit host user;
dots = "/home/${user}/code/nix-config";
};
users.${user} = {
imports = [
inputs.nix-index-database.hmModules.nix-index
inputs.impermanence.nixosModules.home-manager.impermanence
inputs.plasma-manager.homeManagerModules.plasma-manager
inputs.sops-nix.homeManagerModules.sops
./${host}/home.nix
../home
];
};
};
}
# alias for home-manager
(lib.mkAliasOptionModule [ "hm" ] [
"home-manager"
"users"
user
])
inputs.home-manager.nixosModules.home-manager
inputs.impermanence.nixosModules.impermanence
inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops
];
};
in
{
pickwick = mkNixosConfiguration "pickwick" { };
}