aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix
diff options
context:
space:
mode:
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.nix142
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;
+ };
+}