diff --git a/nixos/modules/programs/gpu-screen-recorder.nix b/nixos/modules/programs/gpu-screen-recorder.nix index 5a9401943dfe..156123de7a38 100644 --- a/nixos/modules/programs/gpu-screen-recorder.nix +++ b/nixos/modules/programs/gpu-screen-recorder.nix @@ -34,6 +34,12 @@ in capabilities = "cap_sys_admin+ep"; source = "${package}/bin/gsr-kms-server"; }; + security.wrappers."gpu-screen-recorder" = { + owner = "root"; + group = "root"; + capabilities = "cap_sys_nice+ep"; + source = "${package}/bin/gpu-screen-recorder"; + }; }; meta.maintainers = with lib.maintainers; [ timschumi ]; diff --git a/pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix b/pkgs/by-name/gp/gpu-screen-recorder-gtk/package.nix similarity index 80% rename from pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix rename to pkgs/by-name/gp/gpu-screen-recorder-gtk/package.nix index fe4b4a391135..c887c7e01fbb 100644 --- a/pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix +++ b/pkgs/by-name/gp/gpu-screen-recorder-gtk/package.nix @@ -1,7 +1,7 @@ { stdenv, lib, - fetchurl, + fetchgit, pkg-config, addDriverRunpath, desktop-file-utils, @@ -19,19 +19,19 @@ wayland, wrapGAppsHook3, wrapperDir ? "/run/wrappers/bin", + gitUpdater, }: -stdenv.mkDerivation (finalAttrs: { +stdenv.mkDerivation rec { pname = "gpu-screen-recorder-gtk"; - version = "5.1.6"; + version = "5.7.0"; - src = fetchurl { - url = "https://dec05eba.com/snapshot/gpu-screen-recorder-gtk.git.${finalAttrs.version}.tar.gz"; - hash = "sha256-op5cDILQglVAW/oajc0rdrMC02JZZ8bdER1B1qWPkSk="; + src = fetchgit { + url = "https://repo.dec05eba.com/${pname}"; + tag = version; + hash = "sha256-/s8FCV3hE7Gq1Ad6EhRNTZJwyskV+uRYvjJ43298AOw="; }; - sourceRoot = "."; - nativeBuildInputs = [ desktop-file-utils pkg-config @@ -68,13 +68,18 @@ stdenv.mkDerivation (finalAttrs: { }) ''; + passthru.updateScript = gitUpdater { }; + meta = { changelog = "https://git.dec05eba.com/gpu-screen-recorder-gtk/tree/com.dec05eba.gpu_screen_recorder.appdata.xml#n82"; description = "GTK frontend for gpu-screen-recorder."; homepage = "https://git.dec05eba.com/gpu-screen-recorder-gtk/about/"; license = lib.licenses.gpl3Only; mainProgram = "gpu-screen-recorder-gtk"; - maintainers = with lib.maintainers; [ babbaj ]; + maintainers = with lib.maintainers; [ + babbaj + js6pak + ]; platforms = [ "x86_64-linux" ]; }; -}) +} diff --git a/pkgs/applications/video/gpu-screen-recorder/default.nix b/pkgs/by-name/gp/gpu-screen-recorder/package.nix similarity index 81% rename from pkgs/applications/video/gpu-screen-recorder/default.nix rename to pkgs/by-name/gp/gpu-screen-recorder/package.nix index a508f27f8c48..538d9d32a7c8 100644 --- a/pkgs/applications/video/gpu-screen-recorder/default.nix +++ b/pkgs/by-name/gp/gpu-screen-recorder/package.nix @@ -1,7 +1,7 @@ { stdenv, lib, - fetchurl, + fetchgit, makeWrapper, meson, ninja, @@ -12,6 +12,7 @@ dbus, ffmpeg, wayland, + wayland-scanner, vulkan-headers, pipewire, libdrm, @@ -22,19 +23,19 @@ libXrandr, libXfixes, wrapperDir ? "/run/wrappers/bin", + gitUpdater, }: -stdenv.mkDerivation (finalAttrs: { +stdenv.mkDerivation rec { pname = "gpu-screen-recorder"; - version = "5.2.0"; + version = "5.5.3"; - src = fetchurl { - url = "https://dec05eba.com/snapshot/gpu-screen-recorder.git.${finalAttrs.version}.tar.gz"; - hash = "sha256-7aUW0WhoTpkJhj9WjjI2lnq+vOCG53vl/4DckHmLPBo="; + src = fetchgit { + url = "https://repo.dec05eba.com/${pname}"; + tag = version; + hash = "sha256-XXSHTS/WWqGblbBLuzHSYCY5FVTDSHBHfBWubmoNSy0="; }; - sourceRoot = "."; - nativeBuildInputs = [ pkg-config makeWrapper @@ -49,6 +50,7 @@ stdenv.mkDerivation (finalAttrs: { ffmpeg pipewire wayland + wayland-scanner vulkan-headers libdrm libva @@ -82,12 +84,17 @@ stdenv.mkDerivation (finalAttrs: { --suffix PATH : "$out/bin" ''; + passthru.updateScript = gitUpdater { }; + meta = { description = "Screen recorder that has minimal impact on system performance by recording a window using the GPU only"; homepage = "https://git.dec05eba.com/gpu-screen-recorder/about/"; license = lib.licenses.gpl3Only; mainProgram = "gpu-screen-recorder"; - maintainers = [ lib.maintainers.babbaj ]; + maintainers = with lib.maintainers; [ + babbaj + js6pak + ]; platforms = [ "x86_64-linux" ]; }; -}) +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 98bfe6d7aab0..934b971d17c7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12651,12 +12651,6 @@ with pkgs; withDoc = true; }; - gpu-screen-recorder = callPackage ../applications/video/gpu-screen-recorder { }; - - gpu-screen-recorder-gtk = - callPackage ../applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix - { }; - gpxsee-qt5 = libsForQt5.callPackage ../applications/misc/gpxsee { }; gpxsee-qt6 = qt6Packages.callPackage ../applications/misc/gpxsee { };