{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    fenix.url = "github:nix-community/fenix";
    fenix.inputs.nixpkgs.follows = "nixpkgs";
    rust-overlay.url = "github:oxalica/rust-overlay";
    rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs =
    inputs:
    inputs.flake-utils.lib.eachSystem (with inputs.flake-utils.lib.system; [ x86_64-linux ]) (
      system:
      let
        pkgs = inputs.nixpkgs.legacyPackages.${system};
        # pkgs = inputs.nixpkgs.legacyPackages.${system}.extend (import inputs.rust-overlay);
        # pkgs = import inputs.nixpkgs {
        #   inherit system;
        #   overlays = [ (import inputs.rust-overlay) ];
        # };
        # toolchain = pkgs.rust-bin.selectLatestNightlyWith (toolchain: toolchain.default);
        # toolchain = pkgs.rust-bin.stable.latest.default;
        toolchain = inputs.fenix.packages.${system}.complete.toolchain;
        spkgs = inputs.self.packages.${system};
        inherit (pkgs) lib;
      in
      {
        packages = {
          kazesawa = pkgs.callPackage ./nix/kazesawa.nix { };
          exo = pkgs.callPackage ./nix/exo.nix { };
          geosans-light = pkgs.callPackage ./nix/geosans-light.nix { };

          shimmering-fonts = pkgs.callPackage ./nix/fonts.nix {
            # Pass custom-packaged fonts
            inherit (spkgs) exo kazesawa geosans-light;
          };

          default = spkgs.shimmeringmoon;
          shimmeringmoon = pkgs.callPackage ./nix/shimmeringmoon.nix {
            # Pass the directory of fonts
            inherit (spkgs) shimmering-fonts;
          };
        };

        #  {{{ Devshell
        devShell = pkgs.mkShell rec {
          nativeBuildInputs = with pkgs; [
            # cargo
            # rustc
            # clippy
            # rust-analyzer
            # rustfmt
            toolchain

            ruff
            imagemagick
            pkg-config
          ];

          buildInputs = with pkgs; [
            freetype
            fontconfig
            leptonica
            tesseract
            sqlite
          ];

          LD_LIBRARY_PATH = lib.makeLibraryPath buildInputs;
          SHIMMERING_FONTS_DIR = spkgs.shimmering-fonts;
        };
        #  }}}
      }
    );

  # {{{ Caching and whatnot
  nixConfig = {
    extra-substituters = [ "https://nix-community.cachix.org" ];

    extra-trusted-public-keys = [
      "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
    ];
  };
  # }}}
}