diff --git a/pkgs/applications/graphics/gscreenshot/0001-Changing-paths-to-be-nix-compatible.patch b/pkgs/applications/graphics/gscreenshot/0001-Changing-paths-to-be-nix-compatible.patch new file mode 100644 index 000000000000..187d4a0154ba --- /dev/null +++ b/pkgs/applications/graphics/gscreenshot/0001-Changing-paths-to-be-nix-compatible.patch @@ -0,0 +1,25 @@ +From a4822ee9e894f5f5b3110f41f65a698dd845a41d Mon Sep 17 00:00:00 2001 +From: Richard Davis +Date: Fri, 24 Mar 2023 11:45:23 -0400 +Subject: [PATCH] Changing paths to be nix-compatible. + +--- + dist/desktop/gscreenshot.desktop | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dist/desktop/gscreenshot.desktop b/dist/desktop/gscreenshot.desktop +index a5d2bcd..9d289e2 100644 +--- a/dist/desktop/gscreenshot.desktop ++++ b/dist/desktop/gscreenshot.desktop +@@ -2,7 +2,7 @@ + Type=Application + Name=gscreenshot + Comment=A simple screenshot utility +-TryExec=/usr/bin/gscreenshot ++TryExec=gscreenshot + Exec=gscreenshot + Icon=gscreenshot + Categories=Graphics; +-- +2.39.2 + diff --git a/pkgs/applications/graphics/gscreenshot/default.nix b/pkgs/applications/graphics/gscreenshot/default.nix new file mode 100644 index 000000000000..0847bc87cfd3 --- /dev/null +++ b/pkgs/applications/graphics/gscreenshot/default.nix @@ -0,0 +1,90 @@ +{ lib +, fetchFromGitHub +, python3Packages +, gettext +, gobject-introspection +, gtk3 +, wrapGAppsHook +, xdg-utils +, scrot +, slop +, xclip +, grim +, slurp +, wl-clipboard +, waylandSupport ? true +, x11Support ? true +}: + +python3Packages.buildPythonApplication rec { + pname = "gscreenshot"; + version = "3.4.0"; + + src = fetchFromGitHub { + owner = "thenaterhood"; + repo = "${pname}"; + rev = "v${version}"; + sha256 = "YuISiTUReX9IQpckIgbt03CY7klnog/IeOtfBoQ1DZM="; + }; + + # needed for wrapGAppsHook to function + strictDeps = false; + # tests require a display and fail + doCheck = false; + + nativeBuildInputs = [ wrapGAppsHook ]; + propagatedBuildInputs = [ + gettext + gobject-introspection + gtk3 + xdg-utils + ] ++ lib.optionals waylandSupport [ + # wayland deps + grim + slurp + wl-clipboard + ] ++ lib.optionals x11Support [ + # X11 deps + scrot + slop + xclip + python3Packages.xlib + ] ++ (with python3Packages; [ + pillow + pygobject3 + setuptools + ]); + + patches = [ ./0001-Changing-paths-to-be-nix-compatible.patch ]; + + meta = { + description = "A screenshot frontend (CLI and GUI) for a variety of screenshot backends"; + + longDescription = '' + gscreenshot provides a common frontend and expanded functionality to a + number of X11 and Wayland screenshot and region selection utilties. + + In a nutshell, gscreenshot supports the following: + + - Capturing a full-screen screenshot + - Capturing a region of the screen interactively + - Capturing a window interactively + - Capturing the cursor + - Capturing the cursor, using an alternate cursor glyph + - Capturing a screenshot with a delay + - Showing a notification when a screenshot is taken + - Capturing a screenshot from the command line or a custom script + - Capturing a screenshot using a GUI + - Saving to a variety of image formats including 'bmp', 'eps', 'gif', 'jpeg', 'pcx', 'pdf', 'ppm', 'tiff', 'png', and 'webp'. + - Copying a screenshot to the system clipboard + - Opening a screenshot in the configured application after capture + + Other than region selection, gscreenshot's CLI is non-interactive and is suitable for use in scripts. + ''; + + homepage = "https://github.com/thenaterhood/gscreenshot"; + license = lib.licenses.gpl2Only; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.davisrichard437 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 34235dea7ae3..85c68885d771 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -30623,6 +30623,8 @@ with pkgs; grisbi = callPackage ../applications/office/grisbi { gtk = gtk3; }; + gscreenshot = callPackage ../applications/graphics/gscreenshot { }; + gtkpod = callPackage ../applications/audio/gtkpod { }; q4wine = libsForQt5.callPackage ../applications/misc/q4wine { };