diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix new file mode 100644 index 000000000000..cd372b79c26b --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix @@ -0,0 +1,142 @@ +{ stdenv +, lib +, fetchFromGitHub +, rustPlatform + +, cmake +, gzip +, installShellFiles +, makeWrapper +, ncurses +, pkgconfig +, python3 + +, expat +, fontconfig +, freetype +, libGL +, libX11 +, libXcursor +, libXi +, libXrandr +, libXxf86vm +, libxcb +, libxkbcommon +, wayland +, xdg_utils + + # Darwin Frameworks +, AppKit +, CoreGraphics +, CoreServices +, CoreText +, Foundation +, OpenGL +}: +let + rpathLibs = [ + expat + fontconfig + freetype + libGL + libX11 + libXcursor + libXi + libXrandr + libXxf86vm + libxcb + ] ++ lib.optionals stdenv.isLinux [ + libxkbcommon + wayland + ]; +in +rustPlatform.buildRustPackage rec { + pname = "alacritty"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "alacritty"; + repo = pname; + rev = "v${version}"; + sha256 = "vQdNwNiUvoJWRT1foPRadirI2zWjnzU3sGnIxeHKlj8="; + }; + + cargoSha256 = "1PQSg6EmwVMZj2ALw6qsbtPMCtALVHx5TR05FjGD/QE="; + + nativeBuildInputs = [ + cmake + gzip + installShellFiles + makeWrapper + ncurses + pkgconfig + python3 + ]; + + buildInputs = rpathLibs + ++ lib.optionals stdenv.isDarwin [ + AppKit + CoreGraphics + CoreServices + CoreText + Foundation + OpenGL + ]; + + outputs = [ "out" "terminfo" ]; + + postPatch = '' + substituteInPlace alacritty/src/config/mouse.rs \ + --replace xdg-open ${xdg_utils}/bin/xdg-open + ''; + + installPhase = '' + runHook preInstall + + install -D $releaseDir/alacritty $out/bin/alacritty + + '' + ( + if stdenv.isDarwin then '' + mkdir $out/Applications + cp -r extra/osx/Alacritty.app $out/Applications + ln -s $out/bin $out/Applications/Alacritty.app/Contents/MacOS + '' else '' + install -D extra/linux/Alacritty.desktop -t $out/share/applications/ + install -D extra/logo/compat/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg + + # patchelf generates an ELF that binutils' "strip" doesn't like: + # strip: not enough room for program headers, try linking with -N + # As a workaround, strip manually before running patchelf. + strip -S $out/bin/alacritty + + patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/alacritty + '' + ) + '' + + installShellCompletion --zsh extra/completions/_alacritty + installShellCompletion --bash extra/completions/alacritty.bash + installShellCompletion --fish extra/completions/alacritty.fish + + install -dm 755 "$out/share/man/man1" + gzip -c extra/alacritty.man > "$out/share/man/man1/alacritty.1.gz" + + install -Dm 644 alacritty.yml $out/share/doc/alacritty.yml + + install -dm 755 "$terminfo/share/terminfo/a/" + tic -xe alacritty,alacritty-direct -o "$terminfo/share/terminfo" extra/alacritty.info + mkdir -p $out/nix-support + echo "$terminfo" >> $out/nix-support/propagated-user-env-packages + + runHook postInstall + ''; + + dontPatchELF = true; + + meta = with lib; { + description = "A cross-platform, GPU-accelerated terminal emulator"; + homepage = "https://github.com/alacritty/alacritty"; + license = licenses.asl20; + maintainers = with maintainers; [ Br1ght0ne mic92 cole-h ma27 ]; + platforms = platforms.unix; + }; +} |