{ stdenv , lib , fetchFromGitHub , alacritty , fontconfig , freetype , libglvnd , libxcb }: alacritty.overrideAttrs (oldAttrs: rec { pname = "${oldAttrs.pname}-ligatures"; version = "0.7.1.20210107.gada2680"; src = fetchFromGitHub { owner = "zenixls2"; repo = "alacritty"; fetchSubmodules = true; rev = "df24940a9ccf7ba897fa3167046ee8b181342d8f"; sha256 = "sha256-2Th2aojTN36MgYSFXiACcBkTpTou/X1Ub5JR2sgZa34="; }; cargoDeps = oldAttrs.cargoDeps.overrideAttrs (lib.const { name = "${pname}-${version}-vendor.tar.gz"; inherit src; outputHash = "sha256-weGYh5qeaOHFfq2nf0UdsuIZud+7/8SCD0g0BAjoJIc="; }); ligatureInputs = [ fontconfig freetype libglvnd stdenv.cc.cc.lib libxcb ]; buildInputs = (oldAttrs.buildInputs or [ ]) ++ ligatureInputs; # HACK: One of the ligature libraries required the C++ stdlib at runtime, # and I can't work out a better way to push it to the RPATH. postInstall = lib.optional (!stdenv.isDarwin) '' patchelf \ --set-rpath ${lib.makeLibraryPath ligatureInputs}:"$(patchelf --print-rpath $out/bin/alacritty)" \ $out/bin/alacritty ''; meta = oldAttrs.meta // { description = "Alacritty with ligature patch applied"; homepage = "https://github.com/zenixls2/alacritty/tree/ligature"; }; })