{ lib , stdenv , fetchurl , pkg-config , fontconfig , freetype , libX11 , libXft , ncurses , writeText , conf ? null , patches ? [ ] , extraLibs ? [ ] }: stdenv.mkDerivation rec { pname = "st"; version = "0.8.4"; src = fetchurl { url = "https://dl.suckless.org/st/${pname}-${version}.tar.gz"; hash = "sha256-1C087OtNamXjLpClM249RG22EsP72evBeAvGyaAzRqY="; }; inherit patches; configFile = lib.optionalString (conf != null) (writeText "config.def.h" conf); postPatch = lib.optionalString (conf != null) "cp ${configFile} config.def.h" + lib.optionalString stdenv.isDarwin '' substituteInPlace config.mk --replace "-lrt" "" ''; strictDeps = true; makeFlags = [ "PKG_CONFIG=${stdenv.cc.targetPrefix}pkg-config" ]; nativeBuildInputs = [ pkg-config ncurses fontconfig freetype ]; buildInputs = [ libX11 libXft ] ++ extraLibs; installPhase = '' runHook preInstall TERMINFO=$out/share/terminfo make install PREFIX=$out runHook postInstall ''; meta = with lib; { homepage = "https://st.suckless.org/"; description = "Simple Terminal for X from Suckless.org Community"; license = licenses.mit; maintainers = with maintainers; [ andsild ]; platforms = platforms.linux ++ platforms.darwin; }; }