Files
nixos/lib/mksystem.nix
2026-03-04 22:24:33 +01:00

68 lines
1.6 KiB
Nix

# This file is based on https://github.com/kahlstrm/nixos-config/blob/main/lib/mksystem.nix
{
overlays,
nixvim,
spotiflac-cli,
sops-nix,
inputs,
nixpkgs,
home-manager,
}:
name:
{
system,
user,
email,
gamingSystem ? false,
workSystem ? false,
desktopEnvironment ? "none",
enableZram ? false,
additionalModules ? [ ],
}:
let
nixConfig = ../modules/nix-config/default.nix;
machineConfig = ../machines/${name}/default.nix;
HMConfig = ../home;
systemPackages = ../modules/packages.nix;
specialArgs = {
pkgs-stable = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
currentSystem = system;
currentSystemName = name;
currentSystemUser = user;
currentSystemEmail = email;
currentSystemDe = desktopEnvironment;
gamingSystem = gamingSystem;
workSystem = workSystem;
enableZram = enableZram;
nixvim = nixvim;
spotiflac-cli = spotiflac-cli;
sops-nix = sops-nix;
inputs = inputs;
additionalModules = additionalModules;
};
in
nixpkgs.lib.nixosSystem {
inherit system specialArgs;
modules = [
{ nixpkgs.overlays = overlays; }
nixConfig
systemPackages
home-manager.nixosModules.home-manager
{
home-manager.backupFileExtension = "backup";
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.${user} = import HMConfig;
home-manager.extraSpecialArgs = specialArgs;
home-manager.sharedModules = [
];
}
sops-nix.nixosModules.sops
machineConfig
]
++ additionalModules;
}