{ description = "A very basic flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; disko = { url = "github:nix-community/disko/latest"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager/release-25.11"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, disko, home-manager, nixpkgs, ... }: let system = "x86_64-linux"; serverModules = [ disko.nixosModules.disko ]; commonModules = [ disko.nixosModules.disko home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.ifrahim = import ./home.nix; } ]; in { nixosConfigurations = { # Black Server Configuration black = nixpkgs.lib.nixosSystem { inherit system; modules = serverModules ++ [ ./servers/black/configuration.nix ]; }; # Laptop Configuration laptop = nixpkgs.lib.nixosSystem { inherit system; modules = commonModules ++ [ ./laptop/configuration.nix ]; }; nvidia = nixpkgs.lib.nixosSystem { inherit system; modules = commonModules ++ [ ./nvidia/nvidia.nix ./desktop/configuration.nix ]; }; }; }; }