{
  description = "Home Manager configuration of kristian";

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

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

    # Nix User Repository
    nur.url = "github:nix-community/NUR";

    # Zig
    zig.url = "github:mitchellh/zig-overlay";
  };

  outputs = {
    self,
    nixpkgs,
    home-manager,
    hyprland,
    nur,
    zig,
  } @ inputs: let
    system = "x86_64-linux";
    pkgs = nixpkgs.legacyPackages.${system};
  in {
    formatter.${system} = nixpkgs.legacyPackages.${system}.alejandra;
    homeConfigurations = {
      kristian = home-manager.lib.homeManagerConfiguration {
        inherit pkgs;

        modules = [
          ./home.nix

          {
            nixpkgs.overlays = [
              hyprland.overlays.default # Adds waybar-hyprland
              zig.overlays.default
            ];
          }

          hyprland.homeManagerModules.default

          nur.nixosModules.nur
        ];
      };
    };
  };
}
