{
  description = "A small utility for the river Wayland compositor to rotate the focused tags.";
  inputs = {
    nixpkgs.url = "nixpkgs/nixos-24.05";
  };
  outputs = { nixpkgs, ... }:
  let
    system = "x86_64-linux";
    pkgs = import nixpkgs { inherit system; };
    dependencies = with pkgs; [
      pkg-config
      pixman
      wayland
      wayland-scanner
    ];
    version = "0.2.2";
  in
  {
    packages.${system}.default = pkgs.stdenv.mkDerivation {
      pname = "river-shifttags";
      inherit version;

      src = pkgs.fetchFromGitLab {
        owner = "logistic-bot";
        repo = "river-shifttags";
        rev = "1cb09ab24dc5fd08453bbbb03982a9e544c36eae";
        hash = "sha256-Fvp7VucysYjoMq3hbeIQF6PeyBveHw2y+AsTLAy2fYw=";
      };

      outputs = [ "out" "man" ];

      nativeBuildInputs = dependencies;

      installPhase = ''
        mkdir -p $out/usr/local/bin
        mkdir -p $man/share/man
        install -Dm 755 -t "$out/bin" ./river-shifttags
        install -Dm 644 -t "$man/share/man/man1" ./river-shifttags.1
      '';

      doInstallCheck = true;
      installCheckPhase = ''
        $out/bin/river-shifttags --help
      '';
    };
    devShells.${system}.default = pkgs.mkShell {
      packages = dependencies ++ [
        pkgs.gdb
      ];
      shellHook = "exec zsh";
    };
  };
}
