{ description = "Wyatt's nix configuration suite"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1"; nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-24.05-darwin"; nix-ld.url = "github:Mic92/nix-ld"; home-manager = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; darwin = { url = "github:lnl7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs-darwin"; }; }; outputs = inputs @ { self, nixpkgs, nix-flatpak, nix-ld, darwin, home-manager, ... }: let userName = "wyatt"; userEmail = "wyatt@wyattjmiller.com"; extraSpecialArgs = { inherit userName userEmail ; }; in { # Primary laptop - MacBook Pro (2023, M3) darwinConfigurations."sephiroth" = darwin.lib.darwinSystem { system = "aarch64-darwin"; specialArgs = { inherit userName userEmail; hostname = "sephiroth"; }; modules = [ ./modules/common/nix-core.nix ./modules/common/host-users.nix ./modules/machine/sephiroth/configuration.nix ./modules/machine/sephiroth/apps.nix home-manager.darwinModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = extraSpecialArgs; home-manager.users.${userName} = import ./home; } ]; }; # Primary desktop computer nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit userName userEmail; hostname = "cloud"; }; modules = [ nix-flatpak.nixosModules.nix-flatpak nix-ld.nixosModules.nix-ld ./modules/common/nix-core.nix ./modules/common/host-users.nix ./modules/machine/cloud/hardware-configuration.nix ./modules/machine/cloud/configuration.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = extraSpecialArgs; home-manager.users.${userName}.imports = [ ./home ]; } ]; }; # Apartment appliance server nixosConfigurations."valefor" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit userName userEmail; hostname = "valefor"; }; # modules = [ # nix-ld.nixosModules.nix-ld # ./modules/nix-core.nix # ./modules/host-users.nix # # home-manager.nixosModules.home-manager # { # home-manager.useGlobalPkgs = true; # home-manager.useUserPackages = true; # home-manager.extraSpecialArgs = extraSpecialArgs; # home-manager.users.${userName}.imports = [ # ./home # ]; # } # ]; }; # Storage, status, game, and media server nixosConfigurations."ixion" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit userName userEmail; hostname = "ixion"; }; # modules = [ # nix-flatpak.nixosModules.nix-flatpak # nix-ld.nixosModules.nix-ld # ./modules/nixos/hardware-configuration.nix # ./modules/nix-core.nix # ./modules/nixos/configuration.nix # ./modules/host-users.nix # # home-manager.nixosModules.home-manager # { # home-manager.useGlobalPkgs = true; # home-manager.useUserPackages = true; # home-manager.extraSpecialArgs = extraSpecialArgs; # home-manager.users.${userName}.imports = [ # ./home # ]; # } # ]; }; }; }