diff mbox series

[bug#60806] gnu: Add clipman.

Message ID BY5PR07MB7029701B0EBD53B4C8DEAE3C99C39@BY5PR07MB7029.namprd07.prod.outlook.com
State New
Headers show
Series [bug#60806] gnu: Add clipman. | expand

Commit Message

Wamm K. D Jan. 14, 2023, 7:50 a.m. UTC
* gnu/packages/xdisorg.scm (clipman): New variable.
---
I propogated =wl-clipboard= as the user needs access to ~wl-paste~ in order to
initialize the daemon.

 gnu/packages/xdisorg.scm | 42 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

Comments

Christopher Baines Feb. 17, 2023, 4:28 p.m. UTC | #1
"Wamm K. D" <jaft.r@outlook.com> writes:

> * gnu/packages/xdisorg.scm (clipman): New variable.
> ---
> I propogated =wl-clipboard= as the user needs access to ~wl-paste~ in order to
> initialize the daemon.
>
>  gnu/packages/xdisorg.scm | 42 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)

I've gone ahead and pushed this to master as
c3dd743b9a7bc9bb72718957680dfe9a618cb138.

I added #:install-source? #f to the arguments to avoid including the
source code in the output as this seems unnecessary. I've also added a
bit to use an absolute filename for wl-copy since that means that the
propagated input can be avoided.

Thanks,

Chris
Wamm K. D Feb. 24, 2023, 7:50 a.m. UTC | #2
> I've also added a bit to use an absolute filename for wl-copy since that means that the
> propagated input can be avoided.

I don't know how much it matters but I specified "wl-paste", not "wl-copy", because the user is expected to run "wl-paste -t text --watch clipman store" (or similar) themselves, independent of the "clipman" executable.

Not propagating the input means they'd have to install "wl-clipboard" in addition to "clipman" to be able to get the clipboard daemon running which could feasibly mean running different "wl-clipboard" executables than the ones that the "clipman" executables are using.

Like I said, that could be fine and my uncertainty about whether it matters not relevant but just wanted to call it out, just in case.
diff mbox series

Patch

diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 10edfc7379..3ba695fca1 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -77,6 +77,7 @@  (define-module (gnu packages xdisorg)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
@@ -107,6 +108,7 @@  (define-module (gnu packages xdisorg)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
@@ -127,6 +129,7 @@  (define-module (gnu packages xdisorg)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages syncthing)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages terminals)
   #:use-module (gnu packages xml)
@@ -2893,6 +2896,45 @@  (define-public clipmenu
 After selection, the clip is put onto the PRIMARY and CLIPBOARD X selections.")
       (license license:public-domain))))
 
+(define-public clipman
+  (package
+    (name "clipman")
+    (version "1.6.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/yory8/" name "/"))
+                    (commit (string-append "v" version))))
+              (sha256 (base32
+                        "0b9kvj0dif4221dy6c1npknhhjxvbc4kygzhwxjirpwjws0yv6v9"))))
+    (build-system go-build-system)
+    (arguments
+     (list #:import-path "github.com/yory8/clipman"
+           #:phases #~(modify-phases %standard-phases
+                        (add-before 'build 'fix-something
+                          (lambda _
+                            (substitute* "src/github.com/yory8/clipman/main.go"
+                              (("gopkg.in/alecthomas/kingpin.v2")
+                               "github.com/alecthomas/kingpin"))))
+                        (delete 'install-license-files))))
+    (native-inputs (list go-github-com-alecthomas-template
+                         go-github-com-alecthomas-units))
+    (inputs (list go-github-com-kballard-go-shellquote
+                  go-github-com-alecthomas-kingpin
+                  libnotify))
+    (propagated-inputs (list wl-clipboard))
+    (synopsis "Basic clipboard manager with support for persisting copy buffers")
+    (description
+     "A clipboard manager for Wayland that relies on an external selector,
+such as @code{wofi}, @code{bemenu}, @code{dmenu}, or @code{rofi}.
+
+Run the binary in your session by adding @command{exec wl-paste -t text --watch
+clipman store} (or @command{exec wl-paste -t text --watch clipman store 1>>
+PATH/TO/LOGFILE 2>&1 &} to log errors) at the beginning of wherever you
+initialize programs.")
+    (home-page "https://github.com/yory8/clipman")
+    (license license:gpl3)))
+
 (define-public kbdd
   (package
     (name "kbdd")