151 lines
4 KiB
Nix
151 lines
4 KiB
Nix
{
|
|
inputs,
|
|
lib,
|
|
specialArgs,
|
|
user ? "rayandrew",
|
|
...
|
|
}:
|
|
let
|
|
mkNixosConfiguration =
|
|
host: system:
|
|
let
|
|
pkgs = import inputs.nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
overlays = [
|
|
(import ../overlays {
|
|
inherit inputs;
|
|
inherit (pkgs) system;
|
|
})
|
|
];
|
|
};
|
|
lib = (
|
|
import ../lib.nix {
|
|
inherit (inputs.nixpkgs) lib;
|
|
inherit pkgs;
|
|
inherit (inputs) home-manager;
|
|
}
|
|
);
|
|
in
|
|
lib.nixosSystem {
|
|
inherit pkgs lib;
|
|
|
|
specialArgs = specialArgs // {
|
|
inherit host user;
|
|
dots = "/home/${user}/dotfiles";
|
|
};
|
|
|
|
modules = [
|
|
inputs.disko.nixosModules.default
|
|
./${host}
|
|
./${host}/hardware.nix
|
|
../nixos
|
|
../overlays
|
|
({config, ...}: {
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
|
|
extraSpecialArgs = specialArgs // {
|
|
inherit host user system;
|
|
system-font = "Consolas";
|
|
dots = "/home/${user}/dotfiles";
|
|
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
|
|
];
|
|
};
|
|
|
|
mkDarwinConfiguration =
|
|
host: system:
|
|
let
|
|
pkgs = import inputs.nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
overlays = [
|
|
(import ../overlays {
|
|
inherit inputs;
|
|
inherit (pkgs) system;
|
|
})
|
|
inputs.nixpkgs-firefox-darwin.overlay
|
|
];
|
|
};
|
|
lib = (
|
|
import ../lib.nix {
|
|
inherit (inputs.nixpkgs) lib;
|
|
inherit pkgs;
|
|
inherit (inputs) home-manager;
|
|
}
|
|
);
|
|
in
|
|
inputs.nix-darwin.lib.darwinSystem {
|
|
inherit pkgs lib;
|
|
|
|
specialArgs = specialArgs // {
|
|
inherit host user;
|
|
dots = "/Users/${user}/dotfiles";
|
|
};
|
|
|
|
modules = [
|
|
./${host}
|
|
../darwin
|
|
({config, ...}: {
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
|
|
extraSpecialArgs = specialArgs // {
|
|
inherit host user system;
|
|
system-font = "SF Mono";
|
|
home-dir = config.home-manager.users.${user}.home.homeDirectory;
|
|
dots = "/Users/${user}/dotfiles";
|
|
};
|
|
|
|
users.${user} = {
|
|
imports = [
|
|
inputs.nix-index-database.hmModules.nix-index
|
|
inputs.sops-nix.homeManagerModules.sops
|
|
inputs.mac-app-util.homeManagerModules.default
|
|
../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.darwinModules.home-manager
|
|
inputs.mac-app-util.darwinModules.default
|
|
inputs.nix-homebrew.darwinModules.nix-homebrew
|
|
];
|
|
};
|
|
in
|
|
{
|
|
nixosConfigurations = {
|
|
pickwick = mkNixosConfiguration "pickwick" "x86_64-linux";
|
|
lemur = mkNixosConfiguration "lemur" "x86_64-linux";
|
|
};
|
|
darwinConfigurations = {
|
|
dango = mkDarwinConfiguration "dango" "aarch64-darwin";
|
|
};
|
|
}
|