{ ... }@inputs:

let users = builtins.readDir ../users;
    mkUser = username: _: {
      imports = [
        (import ../users/${username}/default.nix).homeConfiguration

        inputs.self.homeManagerModules.default

        inputs.sops-nix.homeManagerModules.sops
        inputs.impermanence.homeManagerModules.impermanence
        inputs.nixcord.homeManagerModules.nixcord

        # Directory name should always match username.
        ({ ... }: { home.username = username; })

        # TODO: Move to default module.
        ({ lib, ... }: {
          nix = {
            settings.experimental-features =
              lib.mkDefault
                [ "nix-command" "flakes" ];
          };
        })
      ];
    };
in
builtins.mapAttrs mkUser users
