[bug#53879] gnu: Add emacs-everywhere.

Message ID 87czjwsvzx.fsf@gmail.com
State New
Headers
Series [bug#53879] gnu: Add emacs-everywhere. |

Commit Message

Jai Vetrivelan Feb. 9, 2022, 12:51 a.m. UTC

  

Comments

Nicolas Goaziou Feb. 9, 2022, 2:11 p.m. UTC | #1
Hello,

Jai Vetrivelan <jaivetrivelan@gmail.com> writes:

Thanks for the update. I'm sorry: I pointed you, as an example, to
a package using old syntax.

> +(define-public emacs-everywhere
> +  ;; No upstream release.  Extract version from main file.
> +  (let ((commit "ace53396a66ed4b753f42c04a5a0db2bcd770423")
> +        (revision "0"))
> +    (package
> +      (name "emacs-everywhere")
> +      (version (git-version "0.0.1" revision commit))
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://github.com/tecosaur/emacs-everywhere")
> +                      (commit commit)))
> +                (file-name (git-file-name name version))
> +                (sha256
> +                 (base32
> +                  "0p55shxvqm1713af33mfglny7rpi31d42wvgwylcsfy4jvnsq8bb"))))
> +      (arguments
> +       `(#:phases (modify-phases %standard-phases

We're now using G-expressions, which are less ambiguous than quasi-quotes:

(arguments
 (list
  #:phases
  #~(modify-phases %standard-phases

> +                    (add-after 'unpack 'patch-exec-paths
> +                      (lambda* (#:key inputs #:allow-other-keys)
> +                        (let ((xclip (assoc-ref inputs "xclip"))
> +                              (xdotool (assoc-ref inputs "xdotool"))
> +                              (xprop (assoc-ref inputs "xprop"))
> +                              (xwininfo (assoc-ref inputs "xwininfo")))

We don't use (assoc-ref inputs ...) expressions anymore. It is possible
to replace those calls with `search-input-file'.

> +                          (substitute* "emacs-everywhere.el"
> +                            (("\"xclip\"") (string-append "\"" xclip
> +                                                          "/bin/xclip\""))

For example, here, it is possible to write

  (string-append "\"" (search-input-file inputs "/bin/xclip") "\"")

> +                        #t)))))

Phases do not need to end with "#t" anymore, so this can be dropped.

I made the changes above on your behalf and applied your patch.

Regards,
  

Patch

From baf437b34b900ba1733657e560187807c7a67007 Mon Sep 17 00:00:00 2001
From: Jai Vetrivelan <jaivetrivelan@gmail.com>
Date: Tue, 8 Feb 2022 20:44:05 +0530
Subject: [PATCH] gnu: Add emacs-everywhere.

* gnu/packages/emacs-xyz.scm (emacs-everywhere): New variable.
---
 gnu/packages/emacs-xyz.scm | 43 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 56af72b2ab..e68877ee30 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -26279,6 +26279,49 @@  (define-public emacs-evil-tmux-navigator
 Emacs windows and tmux panes.")
     (license license:expat)))
 
+(define-public emacs-everywhere
+  ;; No upstream release.  Extract version from main file.
+  (let ((commit "ace53396a66ed4b753f42c04a5a0db2bcd770423")
+        (revision "0"))
+    (package
+      (name "emacs-everywhere")
+      (version (git-version "0.0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/tecosaur/emacs-everywhere")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0p55shxvqm1713af33mfglny7rpi31d42wvgwylcsfy4jvnsq8bb"))))
+      (arguments
+       `(#:phases (modify-phases %standard-phases
+                    (add-after 'unpack 'patch-exec-paths
+                      (lambda* (#:key inputs #:allow-other-keys)
+                        (let ((xclip (assoc-ref inputs "xclip"))
+                              (xdotool (assoc-ref inputs "xdotool"))
+                              (xprop (assoc-ref inputs "xprop"))
+                              (xwininfo (assoc-ref inputs "xwininfo")))
+                          (substitute* "emacs-everywhere.el"
+                            (("\"xclip\"") (string-append "\"" xclip
+                                                          "/bin/xclip\""))
+                            (("\"xdotool\"") (string-append "\"" xdotool
+                                                            "/bin/xdotool\""))
+                            (("\"xprop\"") (string-append "\"" xprop
+                                                          "/bin/xprop\""))
+                            (("\"xwininfo\"") (string-append "\"" xwininfo
+                                                             "/bin/xwininfo\""))))
+                        #t)))))
+      (inputs (list xclip xdotool xprop xwininfo))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/tecosaur/emacs-everywhere")
+      (synopsis "System-wide popup Emacs windows for quick edits")
+      (description "@code{emacs-everywhere} launches a new Emacs frame, and the
+contents of the buffer are pasted into the previously focused application on
+deletion of the frame.")
+      (license license:gpl3+))))
+
 (define-public emacs-xclip
   (package
     (name "emacs-xclip")

base-commit: 35d56676db0988aad6d1a5b52dc4efef578885f2
-- 
2.34.0