nixos/lib/mk_computer.nix

58 lines
1.7 KiB
Nix
Raw Normal View History

2022-11-04 19:35:57 +01:00
{ custom, hostname, system ? "x86_64-linux", home-module ? "headless" }:
2022-09-07 17:36:29 +02:00
let
overlay-unstable = final: prev: {
2022-11-04 19:35:57 +01:00
unstable = import custom.inputs.nixpkgs-unstable {
2022-09-07 17:42:36 +02:00
inherit system;
2022-09-07 17:36:29 +02:00
config.allowUnfree = true;
};
};
2022-11-04 19:35:57 +01:00
pkgs = import custom.inputs.nixpkgs {
2022-09-07 17:36:29 +02:00
inherit system;
config = {
allowUnfree = true;
};
overlays = [
overlay-unstable
2022-11-01 15:23:52 +01:00
# (final: prev: {
# nextcloud-client = prev.nextcloud-client.overrideAttrs (_: rec {
# version = "3.6.0";
# src = pkgs.fetchFromGitHub {
# owner = "nextcloud";
# repo = "desktop";
# rev = "v${version}";
# sha256 = "sha256-wAxq5xFlofn2xEguvewMvGcel9O+CN/1AycR3tv/xMA=";
# };
# });
# })
2022-09-07 17:36:29 +02:00
];
};
in
2022-11-04 19:35:57 +01:00
custom.inputs.nixpkgs.lib.nixosSystem
2022-09-07 17:36:29 +02:00
{
inherit system pkgs;
2022-11-04 19:35:57 +01:00
specialArgs = { inherit custom; };
modules = (
[
# System configuration for this host
2022-11-04 19:35:57 +01:00
(import "${custom.inputs.self}/systems/${hostname}" {
inherit custom hostname;
2022-09-06 23:03:29 +02:00
})
# Common configuration
2022-11-04 19:35:57 +01:00
(import "${custom.inputs.self}/modules/common-x86" { inherit custom; })
2022-11-04 19:35:57 +01:00
custom.inputs.agenix.nixosModules.age
{ environment.systemPackages = [ custom.inputs.agenix.defaultPackage.${system} ]; }
2022-11-04 19:35:57 +01:00
custom.inputs.home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.${custom.username}.imports = [
2022-11-04 19:35:57 +01:00
(import "${custom.inputs.self}/home-manager/${home-module}.nix" { inherit custom; })
];
}
]);
}