Subject: [bug#46149] [PATCH 2/2] gnu: Add emacs-theme-magic.

From: [email-masked]
Date: Wed, 27 Jan 2021 22:05:43 -0500

From: Morgan Smith <[email-masked]>

* gnu/packages/emacs-xyz.scm (emacs-theme-magic): New variable.
---
 gnu/packages/emacs-xyz.scm | 49 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 48 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 48a0b2a517..78add92372 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -76,7 +76,7 @@
 ;;; Copyright © 2020 Fredrik Salomonsson <[email-masked]>
 ;;; Copyright © 2020 Ryan Desfosses <[email-masked]>
 ;;; Copyright © 2020 Eric Bavier <[email-masked]>
-;;; Copyright © 2020 Morgan Smith <[email-masked]>
+;;; Copyright © 2020, 2021 Morgan Smith <[email-masked]>
 ;;; Copyright © 2020 Peng Mei Yu <[email-masked]>
 ;;; Copyright © 2020 Niklas Eklund <[email-masked]>
 ;;; Copyright © 2020 Marco Grassi <[email-masked]>
@@ -725,6 +725,53 @@ (define-public emacs-moody
 then only the color of the mode line changes when a window becomes in-/active.")
     (license license:gpl3+)))
 
+(define-public emacs-theme-magic
+  ;; No tagged release upstream, but the commit below correspond to the 0.2.3
+  ;; release.
+  (let ((commit "844c4311bd26ebafd4b6a1d72ddcc65d87f074e3")
+        (revision "0"))
+    (package
+      (name "emacs-theme-magic")
+      (version "0.2.3")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/jcaw/theme-magic")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "10gkg7jh1s1484gm66a87zr7x8vmv00s7gfd0w2pj47nqf98g8hz"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(;; Include pywal interaction scripts
+         #:include (cons "^python/" %default-include)
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-exec-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((files '("theme-magic.el" "python/wal_change_colors.py"))
+                     (python (assoc-ref inputs "python"))
+                     (python-pywal (assoc-ref inputs "python-pywal")))
+                 ;; Specify the absolute executable locations.
+                 (for-each
+                  (lambda (file)
+                    (substitute* file
+                      (("\"python\"") (string-append "\"" python "/bin/python3\""))
+                      (("\"wal\"") (string-append "\"" python-pywal "/bin/wal\""))))
+                  files))
+               #t)))))
+      (inputs
+       `(("python" ,python)
+         ("python-pywal" ,python-pywal)))
+      (home-page "https://github.com/jcaw/theme-magic")
+      (synopsis "Generate and apply pywal color palettes based on your Emacs
+theme")
+      (description "Running @code{M-x theme-magic-from-emacs} will extract the
+colors from your Emacs theme and apply them to the rest of Linux with pywal.
+Pywal only applies your theme to the current session.")
+      (license license:gpl3+))))
+
 (define-public emacs-treepy
   (package
     (name "emacs-treepy")
-- 
2.30.0