nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 fetchpatch,
6 nix-update-script,
7 meson,
8 ninja,
9 gettext,
10 desktop-file-utils,
11 appstream-glib,
12 pkg-config,
13 txt2man,
14 vala,
15 wrapGAppsHook3,
16 gsettings-desktop-schemas,
17 gtk3,
18 glib,
19 cairo,
20 keybinder3,
21 ffmpeg-full,
22 python3,
23 libxml2,
24 gst_all_1,
25 which,
26 gifski,
27}:
28
29stdenv.mkDerivation rec {
30 pname = "peek";
31 version = "1.5.1";
32
33 src = fetchFromGitHub {
34 owner = "phw";
35 repo = "peek";
36 rev = version;
37 sha256 = "1xwlfizga6hvjqq127py8vabaphsny928ar7mwqj9cyqfl6fx41x";
38 };
39
40 patches = [
41 # Fix compatibility with GNOME Shell ≥ 40.
42 # https://github.com/phw/peek/pull/910
43 (fetchpatch {
44 url = "https://github.com/phw/peek/commit/008d15316ab5428363c512b263ca8138cb8f52ba.patch";
45 sha256 = "xxJ+r5uRk93MEzWTFla88ewZsnUl3+YKTenzDygtKP0=";
46 })
47 ];
48
49 nativeBuildInputs = [
50 appstream-glib
51 desktop-file-utils
52 gettext
53 meson
54 ninja
55 libxml2
56 pkg-config
57 txt2man
58 python3
59 vala
60 wrapGAppsHook3
61 ];
62
63 buildInputs = [
64 cairo
65 glib
66 gsettings-desktop-schemas
67 gtk3
68 gst_all_1.gstreamer
69 gst_all_1.gst-plugins-good
70 gst_all_1.gst-plugins-ugly
71 keybinder3
72 ];
73
74 postPatch = ''
75 patchShebangs build-aux/meson/postinstall.py data/man/build_man.sh
76 '';
77
78 preFixup = ''
79 gappsWrapperArgs+=(--prefix PATH : ${
80 lib.makeBinPath [
81 which
82 ffmpeg-full
83 gifski
84 ]
85 })
86 '';
87
88 passthru = {
89 updateScript = nix-update-script { };
90 };
91
92 meta = with lib; {
93 homepage = "https://github.com/phw/peek";
94 description = "Simple animated GIF screen recorder with an easy to use interface";
95 license = licenses.gpl3Plus;
96 maintainers = with maintainers; [ puffnfresh ];
97 platforms = platforms.linux;
98 mainProgram = "peek";
99 };
100}