[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#56770] [PATCH v2] gnu: Add grimshot.
From: |
Antero Mejr |
Subject: |
[bug#56770] [PATCH v2] gnu: Add grimshot. |
Date: |
Tue, 26 Jul 2022 13:58:17 -0400 |
* gnu/packages/wm.scm (grimshot): New variable.
---
changes for v2:
1. using copy-build-system instead of trivial-build-system because it is
simpler, copy-build-system handles unpacking the source
2. using snippet to delete the precompiled grimshot.1 (from review)
3. using this-package-input when substituting the script (from review)
4. using invoke to build man page (from review)
5. put inputs on separate lines (from guix style)
Maxime, this code: (source (file-append (package-source sway) "/contrib"))
didn't work for me, but inheriting the package source worked
with --with-git-url.
gnu/packages/wm.scm | 65 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 65 insertions(+)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 8fef7de77b..1e60ceb27b 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -2742,3 +2742,68 @@ (define-public avizo
"Avizo is a simple notification daemon for Sway, mainly intended to be
used for multimedia keys.")
(license license:gpl3+)))
+
+(define-public grimshot
+ (package
+ (inherit sway)
+ (name "grimshot")
+ (source (origin
+ (inherit (package-source sway))
+ (snippet #~(begin
+ (delete-file "contrib/grimshot.1")))))
+ (build-system copy-build-system)
+ (arguments
+ (list #:install-plan #~`(("grimshot" "bin/")
+ ("grimshot.1" "usr/share/man/man1/"))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "contrib")))
+ (add-after 'chdir 'patch-script-deps
+ (lambda _
+ (substitute* "grimshot"
+ (("date ")
+ (string-append #$(this-package-input
"coreutils")
+ "/bin/date "))
+ (("jq ")
+ (string-append #$(this-package-input "jq")
+ "/bin/jq "))
+ (("swaymsg ")
+ (string-append #$(this-package-input "sway")
+ "/bin/swaymsg "))
+ (("notify-send ")
+ (string-append #$(this-package-input
"libnotify")
+ "/bin/notify-send "))
+ (("grim ")
+ (string-append #$(this-package-input "grim")
+ "/bin/grim "))
+ (("slurp ")
+ (string-append #$(this-package-input "slurp")
+ "/bin/slurp "))
+ (("wl-copy ")
+ (string-append
+ #$(this-package-input "wl-clipboard")
+ "/bin/wl-copy ")))))
+ (add-after 'patch-script-deps 'build-man-page
+ (lambda _
+ (with-input-from-file "grimshot.1.scd"
+ (lambda _
+ (with-output-to-file "grimshot.1"
+ (lambda _
+ (invoke #+(file-append
+ (this-package-native-input
+ "scdoc")
+ "/bin/scdoc")))))))))))
+ (native-inputs (list scdoc))
+ (inputs (list coreutils
+ grim
+ jq
+ libnotify
+ slurp
+ sway
+ wl-clipboard))
+ (synopsis "Screenshot utility for the Sway window manager")
+ (description "Grimshot is a screenshot utility for @code{sway}. It
provides
+an interface over @code{grim}, @code{slurp} and @code{jq}, and supports storing
+the screenshot either directly to the clipboard using @code{wl-copy} or to a
+file.")))
--
2.37.0