1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 alsa-lib,
6 ffmpeg,
7 libjack2,
8 libX11,
9 libXext,
10 libXinerama,
11 qtx11extras,
12 libXfixes,
13 libGLU,
14 libGL,
15 pkg-config,
16 libpulseaudio,
17 libv4l,
18 pipewire,
19 qtbase,
20 qttools,
21 wrapQtAppsHook,
22 cmake,
23 ninja,
24 unstableGitUpdater,
25}:
26
27stdenv.mkDerivation {
28 pname = "simplescreenrecorder";
29 version = "0.4.4-unstable-2025-06-14";
30
31 src = fetchFromGitHub {
32 owner = "MaartenBaert";
33 repo = "ssr";
34 rev = "232eac75c56821b4baf025b7dfd7ce737e73f420";
35 hash = "sha256-0PLAHfVIFSv196dcQ83CCvYoKkJFcKKnKB8vISoprCk=";
36 };
37
38 cmakeFlags = [
39 "-DWITH_QT5=TRUE"
40 "-DWITH_GLINJECT=${if stdenv.hostPlatform.isx86 then "TRUE" else "FALSE"}"
41 ];
42
43 postPatch = ''
44 substituteInPlace scripts/ssr-glinject \
45 --replace-fail "libssr-glinject.so" "$out/lib/libssr-glinject.so"
46
47 substituteInPlace src/AV/Input/GLInjectInput.cpp \
48 --replace-fail "/bin/sh" "${stdenv.shell}" \
49 --replace-fail "libssr-glinject.so" "$out/lib/libssr-glinject.so"
50 '';
51
52 nativeBuildInputs = [
53 pkg-config
54 cmake
55 ninja
56 wrapQtAppsHook
57 ];
58
59 buildInputs = [
60 alsa-lib
61 ffmpeg
62 libjack2
63 libX11
64 libXext
65 libXfixes
66 libXinerama
67 libGLU
68 libGL
69 libpulseaudio
70 libv4l
71 pipewire
72 qtbase
73 qttools
74 qtx11extras
75 ];
76
77 passthru.updateScript = unstableGitUpdater { };
78
79 meta = with lib; {
80 description = "Screen recorder for Linux";
81 homepage = "https://www.maartenbaert.be/simplescreenrecorder";
82 license = licenses.gpl3Plus;
83 platforms = platforms.linux;
84 maintainers = [ ];
85 };
86}