{
  description = "NixOS configuration";

  inputs = {                                                                                # All flake references
    nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";                                       # Default stable nix packages

    home-manager = {                                                                        # User package management
      url = "github:nix-community/home-manager/release-23.05";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    hyprland.url = "github:hyprwm/Hyprland";                                                # packages hyprland

#    stylix.url = "github:danth/stylix";
  };

  outputs = attrs @ { self, nixpkgs, home-manager, hyprland, ... }: {
      nixosConfigurations = {                                                               # NixOS Configuration 
        merkur = nixpkgs.lib.nixosSystem {                                                  # Flake "merkur" (Notebook)
          system = "x85_64-linux";
          specialArgs = attrs;                                                              # Pass flake attrs to our config
          modules = [ ./hosts/merkur.nix ];
        };
      };
    };
}
