{
  stdenv,
  fetchFromGitHub,
  gcc,
  device ? "/dev/deskPi",
  ...
}: let
  pname = "deskpi-tools";
  version = "current-20240723";

  src = fetchFromGitHub {
    owner = "DeskPi-Team";
    repo = "deskpi";
    rev = "e421d1e6bd9afb545b6bbfc6b30e306975e77e44";
    hash = "sha256-cetBXTqe8zZXpn5jjZ/g61j9y39exKWIvJH9IMgJj5c=";
  };
in
  stdenv.mkDerivation {
    inherit pname version src;

    nativeBuildInputs = [gcc];
    dontConfigure = true;

    postPatch = ''
      substituteInPlace installation/drivers/c/pwmFanControl.c --replace '/dev/ttyUSB0' '${device}'
      substituteInPlace installation/drivers/c/pwmFanControl.c --replace 'conf_info[1]=75' 'conf_info[1]=0'
      substituteInPlace installation/drivers/c/pwmFanControl.c --replace 'conf_info[3]=75' 'conf_info[3]=50'
      substituteInPlace installation/drivers/c/pwmFanControl.c --replace 'conf_info[5]=100' 'conf_info[5]=75'
      substituteInPlace installation/drivers/c/safeCutOffPower.c --replace '/dev/ttyUSB0' '${device}'
    '';

    buildPhase = ''
      runHook preBuild
      cd installation/drivers/c
      make clean all
      runHook postBuild
    '';

    installPhase = ''
      runHook preInstall
      mkdir -p $out/bin
      install -m755 ./pwmFanControl64 $out/bin/pwmFanControl
      install -m755 ./safeCutOffPower64 $out/bin/safeCutOffPower
      runHook postInstall
    '';
  }