{ lib,
  stdenvNoCC,
  socat,
  coreutils,
  hyprland,
  makeShellWrapper }:
let
  wrappedPath = lib.makeBinPath [ coreutils socat hyprland ];
in
stdenvNoCC.mkDerivation {
  name = "hyprland-dispatcher";
  phases = [ "installPhase" ];
  nativeBuildInputs = [ makeShellWrapper ];
  src = ./.;
  installPhase = ''
    install -Dm555 $src/dispatcher.sh $out/bin/hypr-dispatcher
    wrapProgramShell $out/bin/hypr-dispatcher --prefix PATH : "${wrappedPath}"
  '';
}