nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ lib
2, fetchFromGitHub
3, python3
4, keybinder3
5, intltool
6, file
7, gtk3
8, gobject-introspection
9, libnotify
10, wrapGAppsHook
11, vte
12, nixosTests
13}:
14
15python3.pkgs.buildPythonApplication rec {
16 pname = "terminator";
17 version = "2.1.3";
18
19 src = fetchFromGitHub {
20 owner = "gnome-terminator";
21 repo = "terminator";
22 rev = "v${version}";
23 hash = "sha256-Kx0z9oheA7Ihgsyg6zgPcGFMrqlXoIpQcL/dMqPB2qA=";
24 };
25
26 nativeBuildInputs = [
27 file
28 intltool
29 gobject-introspection
30 wrapGAppsHook
31 python3.pkgs.pytest-runner
32 ];
33
34 buildInputs = [
35 gtk3
36 keybinder3
37 libnotify
38 python3
39 vte
40 ];
41
42 propagatedBuildInputs = with python3.pkgs; [
43 configobj
44 dbus-python
45 pygobject3
46 psutil
47 pycairo
48 ];
49
50 postPatch = ''
51 patchShebangs tests po
52 '';
53
54 doCheck = false;
55
56 dontWrapGApps = true;
57
58 preFixup = ''
59 makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
60 '';
61
62 passthru.tests.test = nixosTests.terminal-emulators.terminator;
63
64 meta = with lib; {
65 description = "Terminal emulator with support for tiling and tabs";
66 longDescription = ''
67 The goal of this project is to produce a useful tool for arranging
68 terminals. It is inspired by programs such as gnome-multi-term,
69 quadkonsole, etc. in that the main focus is arranging terminals in grids
70 (tabs is the most common default method, which Terminator also supports).
71 '';
72 changelog = "https://github.com/gnome-terminator/terminator/releases/tag/v${version}";
73 homepage = "https://github.com/gnome-terminator/terminator";
74 license = licenses.gpl2;
75 maintainers = with maintainers; [ bjornfor ];
76 platforms = platforms.linux;
77 };
78}