Subject: [bug#59409] gnu: Add emacs-dirvish.

From: Fidel Ramos <[email-masked]>
Date: Sun, 20 Nov 2022 10:38:33 +0000

Tested working with ./pre-inst-env guix build --rounds=2 emacs-dirvish and a guix-only Emacs configuration.

Fidel Ramos
https://fidelramos.net/

From 346f0e0e371a4477e924ac66fccc1eb5d91e5829 Mon Sep 17 00:00:00 2001
From: Fidel Ramos <[email-masked]>
Date: Sun, 20 Nov 2022 10:25:56 +0000
Subject: [PATCH] gnu: Add emacs-dirvish.

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

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index fe0d9f1dc9..78ff3f9b1d 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -17101,6 +17101,40 @@ (define-public emacs-dired-sidebar
 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
     (license license:gpl3+)))
 
+(define-public emacs-dirvish
+  (package
+    (name "emacs-dirvish")
+    (version "2.0.53")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/alexluigit/dirvish")
+                    (commit "c535e2147171be5506f4ff34e862bacbfb3de768")))
+              (sha256
+               (base32
+                "1nmp5ci4dvcpih6phfhk66s98lf8b49qd35ymy29kqkf5v4cnwga"))
+              (file-name (git-file-name name version))))
+    (build-system emacs-build-system)
+    (propagated-inputs `(("emacs-transient" ,emacs-transient)))
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  ;; Move the extensions source files to the top level, which is included in
+                  ;; the EMACSLOADPATH.
+                  (add-after 'unpack 'move-source-files
+                    (lambda _
+                      (let ((el-files (find-files "./extensions" ".*\\.el$")))
+                        (for-each (lambda (f)
+                                    (rename-file f
+                                                 (basename f))) el-files)))))))
+    (home-page "https://github.com/alexluigit/dirvish")
+    (synopsis "Improved version of the Emacs package Dired")
+    (description
+     "Dirvish is an improved version of the Emacs inbuilt package
+Dired.  It not only gives Dired an appealing and highly customizable user
+interface, but also comes together with almost all possible parts required for
+full usability as a modern file manager.")
+    (license license:gpl3+)))
+
 (define-public emacs-which-key
   (package
     (name "emacs-which-key")
-- 
2.38.1