{ fetchFromGitHub, lib, makeWrapper, stdenv, # Dependencies (@see https://github.com/pavanjadhaw/betterlockscreen/blob/master/shell.nix) bc, coreutils, dbus, withDunst ? true, dunst, i3lock-color, gawk, gnugrep, gnused, imagemagick, procps, xorg, }: let runtimeDeps = [ bc coreutils dbus i3lock-color gawk gnugrep gnused imagemagick procps xorg.xdpyinfo xorg.xrandr xorg.xset ] ++ lib.optionals withDunst [ dunst ]; in stdenv.mkDerivation rec { pname = "betterlockscreen"; version = "4.4.0"; src = fetchFromGitHub { owner = "betterlockscreen"; repo = "betterlockscreen"; rev = "v${version}"; sha256 = "sha256-59Ct7XIfZqU3yaW9FO7UV8SSMLdcZMPRc7WJangxFPo="; }; nativeBuildInputs = [ makeWrapper ]; installPhase = '' runHook preInstall mkdir -p $out/bin cp betterlockscreen $out/bin/betterlockscreen wrapProgram "$out/bin/betterlockscreen" \ --prefix PATH : "$out/bin:${lib.makeBinPath runtimeDeps}" runHook postInstall ''; meta = with lib; { description = "Fast and sweet looking lockscreen for linux systems with effects!"; homepage = "https://github.com/betterlockscreen/betterlockscreen"; mainProgram = "betterlockscreen"; license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ eyjhb sebtm ]; }; }