{ description = "TimmyOS System Config"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; arkenfox = { url = "github:dwarfmaster/arkenfox-nixos"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, home-manager, arkenfox, ... }@inputs : let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; userDetails = { username = "timmy"; home.root = "/home/timmy"; home.downloads = "/home/timmy/dls"; email = "tjkeller.xyz"; fullname = "Tim Keller"; }; mkNixosConfiguration = hostname: nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs; inherit userDetails; }; modules = [ ./modules/hosts/${hostname}/configuration.nix ./modules/root home-manager.nixosModules.home-manager { home-manager = { backupFileExtension = "old"; useGlobalPkgs = true; useUserPackages = true; users.${userDetails.username} = import ./modules/home; extraSpecialArgs = { inherit userDetails; }; sharedModules = [ inputs.arkenfox.hmModules.arkenfox ./modules/hosts/${hostname}/home.nix ]; }; } ]; }; in { nixosConfigurations = { T430 = mkNixosConfiguration "T430"; T495 = mkNixosConfiguration "T495"; }; }; }