hyprswitch 3.2.5

A CLI/GUI that allows switching between windows in Hyprland
{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs";
    flake-parts.url = "github:hercules-ci/flake-parts";
    rust-overlay = {
      url = "github:oxalica/rust-overlay";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };
  outputs =
    inputs@{
      self,
      flake-parts,
      nixpkgs,
      rust-overlay,
      ...
    }:
    flake-parts.lib.mkFlake { inherit inputs; } {
      imports = [ ];
      systems = [
        "aarch64-linux"
        "i686-linux"
        "riscv32-linux"
        "riscv64-linux"
        "x86_64-linux"
      ];
      perSystem =
        {
          config,
          pkgs,
          system,
          ...
        }:
        {
          _module.args.pkgs =
            let
              rustPkgs = import nixpkgs {
                inherit system;
                overlays = [
                  rust-overlay.overlays.default
                ];
              };
              inherit (rustPkgs) rust-bin;
            in
            import nixpkgs {
              inherit system;
              overlays = [
                (final: prev: {
                  rustToolchain = rust-bin.stable.latest.minimal;
                  rustPlatform = prev.makeRustPlatform {
                    cargo = final.rustToolchain;
                    rustc = final.rustToolchain;
                  };
                })
              ];
            };

          packages = {
            default = self.packages.${system}.hyprswitch;
            hyprswitch = pkgs.callPackage ./nix/default.nix { };
          };

          devShells.default = pkgs.callPackage ./nix/shell.nix { inherit self; };

          formatter = if system != "riscv32-linux" then pkgs.nixfmt-rfc-style else null;
        };
    };
}