{ inputs, system, user, userFullname, ... }: { nixos-modules ? [], home-modules ? [], }: let inherit (inputs) home-manager nixpkgs sops-nix nixvim; in nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; inherit system; modules = nixos-modules ++ [ home-manager.nixosModules.home-manager sops-nix.nixosModules.sops { home-manager = { useGlobalPkgs = true; useUserPackages = true; 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/. ]; } ]; }