cb6ccb6a7e
Based on popular demand I decided to upgraded alacritty from my own fork. We currently also have a version in staging that works without but we cannot easily backport this one because it relies on some changes in the rust build infrastructure
124 lines
2.8 KiB
Nix
124 lines
2.8 KiB
Nix
{ stdenv,
|
|
lib,
|
|
fetchgit,
|
|
rustPlatform,
|
|
cmake,
|
|
makeWrapper,
|
|
ncurses,
|
|
expat,
|
|
pkgconfig,
|
|
freetype,
|
|
fontconfig,
|
|
libX11,
|
|
gzip,
|
|
libXcursor,
|
|
libXxf86vm,
|
|
libXi,
|
|
libXrandr,
|
|
libGL,
|
|
xclip,
|
|
# Darwin Frameworks
|
|
AppKit,
|
|
CoreFoundation,
|
|
CoreGraphics,
|
|
CoreServices,
|
|
CoreText,
|
|
Foundation,
|
|
OpenGL }:
|
|
|
|
with rustPlatform;
|
|
|
|
let
|
|
rpathLibs = [
|
|
expat
|
|
freetype
|
|
fontconfig
|
|
libX11
|
|
libXcursor
|
|
libXxf86vm
|
|
libXrandr
|
|
libGL
|
|
libXi
|
|
];
|
|
darwinFrameworks = [
|
|
AppKit
|
|
CoreFoundation
|
|
CoreGraphics
|
|
CoreServices
|
|
CoreText
|
|
Foundation
|
|
OpenGL
|
|
];
|
|
in buildRustPackage rec {
|
|
name = "alacritty-unstable-${version}";
|
|
version = "0.2.0";
|
|
|
|
# At the moment we cannot handle git dependencies in buildRustPackage.
|
|
# This fork only replaces rust-fontconfig/libfontconfig with a git submodules.
|
|
src = fetchgit {
|
|
url = https://github.com/Mic92/alacritty.git;
|
|
rev = "rev-${version}";
|
|
sha256 = "1c9izflacm693rwkxwakxgnpkvxwc8mqasr5p7x0ys6xg91h9sxn";
|
|
fetchSubmodules = true;
|
|
};
|
|
|
|
cargoSha256 = "1ijgkwv9ij4haig1h6n2b9xbhp5vahy9vp1sx72wxaaj9476msjx";
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
makeWrapper
|
|
pkgconfig
|
|
ncurses
|
|
gzip
|
|
];
|
|
|
|
buildInputs = rpathLibs
|
|
++ lib.optionals stdenv.isDarwin darwinFrameworks;
|
|
|
|
outputs = [ "out" "terminfo" ];
|
|
|
|
postPatch = ''
|
|
substituteInPlace copypasta/src/x11.rs \
|
|
--replace Command::new\(\"xclip\"\) Command::new\(\"${xclip}/bin/xclip\"\)
|
|
'';
|
|
|
|
postBuild = lib.optionalString stdenv.isDarwin "make app";
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -D target/release/alacritty $out/bin/alacritty
|
|
|
|
'' + (if stdenv.isDarwin then ''
|
|
mkdir $out/Applications
|
|
cp -r target/release/osx/Alacritty.app $out/Applications/Alacritty.app
|
|
'' else ''
|
|
install -D alacritty.desktop $out/share/applications/alacritty.desktop
|
|
patchelf --set-rpath "${stdenv.lib.makeLibraryPath rpathLibs}" $out/bin/alacritty
|
|
'') + ''
|
|
|
|
install -D alacritty-completions.zsh "$out/share/zsh/site-functions/_alacritty"
|
|
install -D alacritty-completions.bash "$out/etc/bash_completion.d/alacritty-completions.bash"
|
|
install -D alacritty-completions.fish "$out/share/fish/vendor_completions.d/alacritty.fish"
|
|
|
|
install -dm 755 "$out/share/man/man1"
|
|
gzip -c alacritty.man > "$out/share/man/man1/alacritty.1.gz"
|
|
|
|
install -dm 755 "$terminfo/share/terminfo/a/"
|
|
tic -x -o "$terminfo/share/terminfo" alacritty.info
|
|
mkdir -p $out/nix-support
|
|
echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
dontPatchELF = true;
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "GPU-accelerated terminal emulator";
|
|
homepage = https://github.com/jwilm/alacritty;
|
|
license = with licenses; [ asl20 ];
|
|
maintainers = with maintainers; [ mic92 ];
|
|
};
|
|
}
|