72 lines
1.7 KiB
Nix
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" { };
|
|
}
|