nur-packages/pkgs/applications/terminal-emulators/alacritty-ligatures/default.nix

54 lines
1.3 KiB
Nix

{ 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";
};
})