{
  description = ''    .
                            $$\
                            \__|
        $$\   $$\ $$$$$$$\  $$\ $$\    $$\  $$$$$$\   $$$$$$\   $$$$$$$\  $$$$$$\
        $$ |  $$ |$$  __$$\ $$ |\$$\  $$  |$$  __$$\ $$  __$$\ $$  _____|$$  __$$\
        $$ |  $$ |$$ |  $$ |$$ | \$$\$$  / $$$$$$$$ |$$ |  \__|\$$$$$$\  $$$$$$$$ |
        $$ |  $$ |$$ |  $$ |$$ |  \$$$  /  $$   ____|$$ |       \____$$\ $$   ____|
        \$$$$$$  |$$ |  $$ |$$ |   \$  /   \$$$$$$$\ $$ |      $$$$$$$  |\$$$$$$$\
         \______/ \__|  \__|\__|    \_/     \_______|\__|      \_______/  \_______|

                                  A nixos/hm flake

  '';

  outputs = {self, ...} @ inputs: let
    system = "x86_64-linux";
  in
    inputs.flake-parts.lib.mkFlake {inherit inputs;} {
      flake = let
        u = import ./ulib {inherit inputs system;};
      in {
        nixosConfigurations."earth" = inputs.nixpkgs.lib.nixosSystem {
          specialArgs = {inherit system inputs u;};
          modules = [
            ./hosts/common
            ./hosts/earth
            # universe
          ];
        };

        homeConfigurations.tx0 = inputs.home-manager.lib.homeManagerConfiguration {
          pkgs = import inputs.nixpkgs {
            inherit system;
          };
          extraSpecialArgs = {inherit system inputs u;};
          modules = [
            ./home
            ./universe.nix
          ];
        };
      };
      systems = [
        "x86_64-linux"
        "aarch64-linux"
      ];
    };

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    nixpkgs-stable.url = "github:nixos/nixpkgs/release-24.11";
    nixpkgs-master.url = "github:nixos/nixpkgs/master";

    nur = {
      url = "github:nix-community/NUR";
      inputs.nixpkgs.follows = "nixpkgs";
    };

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

    flake-parts.url = "github:hercules-ci/flake-parts";

    stylix = {
      url = "github:danth/stylix";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    zen-browser = {
      url = "github:0xc000022070/zen-browser-flake";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    nix-index-database = {
      url = "github:nix-community/nix-index-database";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    programsdb = {
      url = "github:wamserma/flake-programs-sqlite";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    nypkgs = {
      url = "github:yunfachi/nypkgs";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    anyrun = {
      url = "github:anyrun-org/anyrun";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    nvf = {
      url = "github:notashelf/nvf";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    hyprland = {
      url = "github:hyprwm/Hyprland/v0.46.2";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    sops-nix = {
      url = "github:Mic92/sops-nix";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };
}