155 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  description = "Wyatt's nix configuration suite";
 | 
						|
  inputs = {
 | 
						|
    nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
 | 
						|
    nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0";
 | 
						|
    home-manager = {
 | 
						|
      url = "github:nix-community/home-manager/release-25.05";
 | 
						|
      inputs.nixpkgs.follows = "nixpkgs";
 | 
						|
    };
 | 
						|
    darwin = {
 | 
						|
      url = "github:lnl7/nix-darwin/nix-darwin-25.05";
 | 
						|
      inputs.nixpkgs.follows = "nixpkgs";
 | 
						|
    };
 | 
						|
    ghostty.url = "github:ghostty-org/ghostty";
 | 
						|
    rust-overlay.url = "github:oxalica/rust-overlay";
 | 
						|
  };
 | 
						|
 | 
						|
  outputs = inputs @ {
 | 
						|
    self,
 | 
						|
    nixpkgs,
 | 
						|
    nix-flatpak,
 | 
						|
    darwin,
 | 
						|
    home-manager,
 | 
						|
    ghostty,
 | 
						|
    rust-overlay,
 | 
						|
    ...
 | 
						|
  }: let
 | 
						|
    userName = "wyatt";
 | 
						|
    userEmail = "wyatt@wyattjmiller.com";
 | 
						|
    extraSpecialArgs = {
 | 
						|
      inherit userName userEmail ghostty;
 | 
						|
    };
 | 
						|
 | 
						|
    myOverlays = { ... }: {
 | 
						|
      nixpkgs.overlays = [
 | 
						|
        rust-overlay.overlays.default
 | 
						|
        self.common.overlays
 | 
						|
      ];
 | 
						|
    };
 | 
						|
  in {
 | 
						|
    meta = import ./meta;
 | 
						|
 | 
						|
    common = {
 | 
						|
      overlays = import ./modules/common/overlays.nix;
 | 
						|
    };
 | 
						|
 | 
						|
    # Primary laptop - MacBook Pro (2023, M3)
 | 
						|
    darwinConfigurations."sephiroth" = darwin.lib.darwinSystem {
 | 
						|
      system = "aarch64-darwin";
 | 
						|
      specialArgs = {
 | 
						|
        inherit userName userEmail ghostty;
 | 
						|
        hostname = "sephiroth";
 | 
						|
        role = "devel";
 | 
						|
      };
 | 
						|
      modules = [
 | 
						|
        myOverlays
 | 
						|
        ./modules/common
 | 
						|
        ./modules/machine/sephiroth
 | 
						|
 | 
						|
        home-manager.darwinModules.home-manager
 | 
						|
        {
 | 
						|
          home-manager.useGlobalPkgs = true;
 | 
						|
          home-manager.useUserPackages = true;
 | 
						|
          home-manager.extraSpecialArgs = extraSpecialArgs;
 | 
						|
          home-manager.backupFileExtension = "bak";
 | 
						|
          home-manager.users.${userName} = import ./home;
 | 
						|
        }
 | 
						|
      ];
 | 
						|
    };
 | 
						|
 | 
						|
    # Primary desktop computer
 | 
						|
    nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem {
 | 
						|
      system = "x86_64-linux";
 | 
						|
      specialArgs = {
 | 
						|
        inherit userName userEmail ghostty;
 | 
						|
        hostname = "cloud";
 | 
						|
        role = "devel";
 | 
						|
      };
 | 
						|
      modules = [
 | 
						|
        myOverlays
 | 
						|
        nix-flatpak.nixosModules.nix-flatpak
 | 
						|
        ./modules/common
 | 
						|
        ./modules/machine/cloud
 | 
						|
 | 
						|
        home-manager.nixosModules.home-manager
 | 
						|
        {
 | 
						|
          home-manager.useGlobalPkgs = true;
 | 
						|
          home-manager.useUserPackages = true;
 | 
						|
          home-manager.extraSpecialArgs = extraSpecialArgs;
 | 
						|
          home-manager.backupFileExtension = "bak";
 | 
						|
          home-manager.users.${userName}.imports = [
 | 
						|
            ./home
 | 
						|
          ];
 | 
						|
        }
 | 
						|
      ];
 | 
						|
    };
 | 
						|
 | 
						|
    # Apartment appliance server
 | 
						|
    nixosConfigurations."valefor" = nixpkgs.lib.nixosSystem {
 | 
						|
      system = "x86_64-linux";
 | 
						|
      specialArgs = {
 | 
						|
        inherit userName userEmail;
 | 
						|
        hostname = "valefor";
 | 
						|
        role = "server";
 | 
						|
      };
 | 
						|
      modules = [
 | 
						|
        myOverlays
 | 
						|
        ./modules/common
 | 
						|
        ./modules/machine/valefor
 | 
						|
 | 
						|
        home-manager.nixosModules.home-manager
 | 
						|
        {
 | 
						|
          home-manager.useGlobalPkgs = true;
 | 
						|
          home-manager.useUserPackages = true;
 | 
						|
          home-manager.extraSpecialArgs = extraSpecialArgs;
 | 
						|
          home-manager.backupFileExtension = "bak";
 | 
						|
          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";
 | 
						|
        role = "server";
 | 
						|
      };
 | 
						|
      # modules = [
 | 
						|
      #   myOverlays
 | 
						|
      #   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.backupFileExtension = "bak";
 | 
						|
      #     home-manager.users.${userName}.imports = [
 | 
						|
      #       ./home
 | 
						|
      #     ];
 | 
						|
      #   }
 | 
						|
      # ];
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |