102 lines
2.3 KiB
Nix
102 lines
2.3 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchgit,
|
|
pkg-config,
|
|
meson,
|
|
ninja,
|
|
makeWrapper,
|
|
gpu-screen-recorder,
|
|
gpu-screen-recorder-notification,
|
|
libX11,
|
|
libXrender,
|
|
libXrandr,
|
|
libXcomposite,
|
|
libXi,
|
|
libXcursor,
|
|
libglvnd,
|
|
libpulseaudio,
|
|
libdrm,
|
|
wayland,
|
|
wayland-scanner,
|
|
wrapperDir ? "/run/wrappers/bin",
|
|
gitUpdater,
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "gpu-screen-recorder-ui";
|
|
version = "1.7.8";
|
|
|
|
src = fetchgit {
|
|
url = "https://repo.dec05eba.com/${pname}";
|
|
tag = version;
|
|
hash = "sha256-XVxZyFHod+t7lfwhTSYsWerReBBukMVodauL+MmTqaE=";
|
|
};
|
|
|
|
postPatch = ''
|
|
substituteInPlace depends/mglpp/depends/mgl/src/gl.c \
|
|
--replace-fail "libGL.so.1" "${lib.getLib libglvnd}/lib/libGL.so.1" \
|
|
--replace-fail "libGLX.so.0" "${lib.getLib libglvnd}/lib/libGLX.so.0" \
|
|
--replace-fail "libEGL.so.1" "${lib.getLib libglvnd}/lib/libEGL.so.1"
|
|
|
|
substituteInPlace extra/gpu-screen-recorder-ui.service \
|
|
--replace-fail "WantedBy=default.target" "WantedBy=graphical-session.target"
|
|
substituteInPlace extra/gpu-screen-recorder-ui.service \
|
|
--replace-fail "ExecStart=${meta.mainProgram}" "ExecStart=$out/bin/${meta.mainProgram}"
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
pkg-config
|
|
meson
|
|
ninja
|
|
makeWrapper
|
|
];
|
|
|
|
buildInputs = [
|
|
libX11
|
|
libXrender
|
|
libXrandr
|
|
libXcomposite
|
|
libXi
|
|
libXcursor
|
|
libglvnd
|
|
libpulseaudio
|
|
libdrm
|
|
wayland
|
|
wayland-scanner
|
|
];
|
|
|
|
mesonFlags = [
|
|
# Handled by the module
|
|
(lib.mesonBool "capabilities" false)
|
|
];
|
|
|
|
postInstall =
|
|
let
|
|
gpu-screen-recorder-wrapped = gpu-screen-recorder.override {
|
|
inherit wrapperDir;
|
|
};
|
|
in
|
|
''
|
|
wrapProgram "$out/bin/${meta.mainProgram}" \
|
|
--prefix PATH : "${wrapperDir}" \
|
|
--suffix PATH : "${
|
|
lib.makeBinPath [
|
|
gpu-screen-recorder-wrapped
|
|
gpu-screen-recorder-notification
|
|
]
|
|
}"
|
|
'';
|
|
|
|
passthru.updateScript = gitUpdater { };
|
|
|
|
meta = {
|
|
description = "Fullscreen overlay UI for GPU Screen Recorder in the style of ShadowPlay";
|
|
homepage = "https://git.dec05eba.com/${pname}/about/";
|
|
license = lib.licenses.gpl3Only;
|
|
mainProgram = "gsr-ui";
|
|
maintainers = with lib.maintainers; [ js6pak ];
|
|
platforms = lib.platforms.linux;
|
|
};
|
|
}
|