nix/lib/mkconf.nix

53 lines
1.3 KiB
Nix

{
inputs,
system,
user,
userFullname,
...
}: {
nixos-modules ? [],
home-modules ? [],
}: let
inherit (inputs) home-manager nixpkgs sops-nix nixvim;
in
nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs user userFullname;};
inherit system;
modules =
nixos-modules
++ [
home-manager.nixosModules.home-manager
sops-nix.nixosModules.sops
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "bak";
extraSpecialArgs = {inherit inputs user;};
users.${user}.imports =
home-modules
++ [
nixvim.homeManagerModules.nixvim
../home/.
{
options.home.userFullname = nixpkgs.lib.mkOption {default = userFullname;};
config.home.username = user;
}
];
};
sops = {
defaultSopsFile = ../secrets/secrets.yaml;
defaultSopsFormat = "yaml";
age.keyFile = "/home/${user}/.config/sops/age/keys.txt";
};
imports = [
{
options.user = nixpkgs.lib.mkOption {default = user;};
}
../nixos/.
];
}
];
}