{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
    nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";

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

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

    nixvim = {
      url = "git+ssh://forgejo@forgejo.005540.xyz/logistic-bot/nixvim";
    };

    river-shifttags = {
      url = "git+ssh://forgejo@forgejo.005540.xyz/logistic-bot/river-shifttags";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    breezex-cursor = {
      url = "git+ssh://forgejo@forgejo.005540.xyz/logistic-bot/breezex-cursor";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    cassowary = {
      url = "git+ssh://forgejo@forgejo.005540.xyz/logistic-bot/cassowary";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    other-transcode = {
      url = "github:logistic-bot/other_video_transcoding_nix";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    nix-doom-emacs-unstraightened = {
      url = "github:marienz/nix-doom-emacs-unstraightened";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    nixos-06cb-009a-fingerprint-sensor = {
      url = "github:ahbnr/nixos-06cb-009a-fingerprint-sensor";
    };

    mms.url = "github:mkaito/nixos-modded-minecraft-servers";
  };
  outputs = {
    nixpkgs,
    nixpkgs-unstable,
    home-manager,
    stylix,
    nixvim,
    river-shifttags,
    breezex-cursor,
    other-transcode,
    nix-doom-emacs-unstraightened,
    nixos-06cb-009a-fingerprint-sensor,
    cassowary,
    mms,
    ...
  }: let
    system = "x86_64-linux";
    home-manager-args = {
      nixvim = nixvim.packages.${system}.default;
      river-shifttags = river-shifttags.packages.${system}.default;
      breezex-cursor = breezex-cursor.packages.${system}.default;
      kitty-unstable = nixpkgs-unstable.legacyPackages.${system}.kitty;
      other-transcode = other-transcode.packages.${system}.default;
      nix-doom-emacs-unstraightened = nix-doom-emacs-unstraightened.hmModule;
      cassowary = cassowary.packages.${system}.default;
      pkgs-unstable = nixpkgs-unstable.legacyPackages.${system};
    };
  in {
    nixosConfigurations.void = nixpkgs.lib.nixosSystem {
      inherit system;
      modules = [
        ./void.nix

        home-manager.nixosModules.home-manager
        {
          home-manager = {
            useGlobalPkgs = true;
            useUserPackages = true;
            users.khais = ./home.nix;
            extraSpecialArgs = home-manager-args;
          };
        }

        stylix.nixosModules.stylix
        ./stylix.nix
      ];
      specialArgs = {
        pkgs-unstable = nixpkgs-unstable.legacyPackages.${system};
        breezex-cursor = breezex-cursor.packages.${system}.default;
        inherit mms;
      };
    };
    nixosConfigurations.t470 = nixpkgs.lib.nixosSystem {
      inherit system;
      modules = [
        ./t470.nix

        home-manager.nixosModules.home-manager
        {
          home-manager = {
            useGlobalPkgs = true;
            useUserPackages = true;
            users.khais = ./home.nix;
            extraSpecialArgs = home-manager-args;
          };
        }

        stylix.nixosModules.stylix
        ./stylix.nix

        nixos-06cb-009a-fingerprint-sensor.nixosModules."06cb-009a-fingerprint-sensor"
      ];
      specialArgs = {
        pkgs-unstable = nixpkgs-unstable.legacyPackages.${system};
        breezex-cursor = breezex-cursor.packages.${system}.default;
      };
    };
  };
}
