summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/terminal-emulators/wezterm/default.nix85
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 87 insertions, 0 deletions
diff --git a/pkgs/applications/terminal-emulators/wezterm/default.nix b/pkgs/applications/terminal-emulators/wezterm/default.nix
new file mode 100644
index 000000000000..7a0cf13b0c78
--- /dev/null
+++ b/pkgs/applications/terminal-emulators/wezterm/default.nix
@@ -0,0 +1,85 @@
+{ rustPlatform
+, lib
+, fetchFromGitHub
+
+, pkg-config
+, fontconfig
+, python3
+, openssl
+, perl
+
+, dbus
+, libX11
+, xcbutil
+, libxcb
+, xcbutilkeysyms
+, xcbutilwm # contains xcb-ewmh among others
+, libxkbcommon
+, libglvnd # libEGL.so.1
+, egl-wayland
+, wayland
+, libGLU
+, libGL
+, freetype
+, zlib
+}:
+let
+ runtimeDeps = [
+ libX11
+ xcbutil
+ libxcb
+ xcbutilkeysyms
+ xcbutilwm
+ libxkbcommon
+ dbus
+ libglvnd
+ zlib
+ egl-wayland
+ wayland
+ libGLU
+ libGL
+ fontconfig
+ freetype
+ ];
+ pname = "wezterm";
+in
+
+rustPlatform.buildRustPackage {
+ inherit pname;
+ version = "unstable-2020-11-22";
+
+ src = fetchFromGitHub {
+ owner = "wez";
+ repo = pname;
+ rev = "3bd8d8c84591f4d015ff9a47ddb478e55c231fda";
+ sha256 = "13xf3685kir4p159hsxrqkj9p2lwgfp0n13h9zadslrd44l8b8j8";
+ };
+ cargoSha256 = "1i983ix7kdq7kd1i14kk3ra7jiihrd7n4pxmfifbj48g3kyxn2pq";
+
+ nativeBuildInputs = [
+ pkg-config
+ python3
+ openssl.dev
+ perl
+ ];
+
+ buildInputs = runtimeDeps;
+
+ installPhase = ''
+ for artifact in wezterm wezterm-gui wezterm-mux-server strip-ansi-escapes; do
+ patchelf --set-rpath "${lib.makeLibraryPath runtimeDeps}" $releaseDir/$artifact
+ install -D $releaseDir/$artifact -t $out/bin
+ done
+ '';
+
+ # prevent further changes to the RPATH
+ dontPatchELF = true;
+
+ meta = with lib; {
+ description = "A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust";
+ homepage = "https://wezfurlong.org/wezterm";
+ license = licenses.mit;
+ maintainers = with maintainers; [ steveej ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8d861c494696..9e336517b32a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -801,6 +801,8 @@ in
wayst = callPackage ../applications/terminal-emulators/wayst { };
+ wezterm = callPackage ../applications/terminal-emulators/wezterm { };
+
x3270 = callPackage ../applications/terminal-emulators/x3270 { };
xterm = callPackage ../applications/terminal-emulators/xterm { };