Subject: [bug#77714] [PATCH] gnu: Add emacs-casual.

From: [email-masked]
Date: Thu, 10 Apr 2025 15:47:35 -0400

From: Peter Polidoro <[email-masked]>

* gnu/packages/emacs-xyz.scm (emacs-casual): New variable.

Change-Id: I8be708f8792752b3928cfd4817cebadecf1e8fa4
---
 gnu/packages/emacs-xyz.scm | 134 +++++++++----------------------------
 1 file changed, 33 insertions(+), 101 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 2a377f5a08..b288d74111 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -35702,6 +35702,34 @@ (define-public emacs-cascading-dir-locals
 all of your projects, then override or add variables on a per-project basis.")
       (license license:gpl3+))))
 
+(define-public emacs-casual
+  (package
+    (name "emacs-casual")
+    (version "2.4.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/kickingvegas/casual")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jqk5jzj6ykijaa39rpyg85s1czwa4q2qdfv077vnv57wfknzvfy"))))
+    (build-system emacs-build-system)
+    (arguments
+     (list
+      #:lisp-directory "lisp"
+      #:test-command #~(list "make" "tests")
+      ;; Tests require “casual-lib-test-utils”, which are not installed.
+      #:tests? #f))
+    (propagated-inputs (list emacs-transient))
+    (home-page "https://github.com/kickingvegas/casual")
+    (synopsis "Transient user interfaces for various modes")
+    (description
+     "Casual is a collection of opinionated Transient-based keyboard driven user
+interfaces for various built-in modes.")
+    (license license:gpl3+)))
+
 (define-public emacs-casual-avy
   (package
     (name "emacs-casual-avy")
@@ -35722,7 +35750,7 @@ (define-public emacs-casual-avy
       #:test-command #~(list "make" "tests")
       ;; Tests require “casual-lib-test-utils”, which are not installed.
       #:tests? #f))
-    (propagated-inputs (list emacs-casual-lib emacs-avy))
+    (propagated-inputs (list emacs-casual emacs-avy))
     (home-page "https://github.com/kickingvegas/casual-avy")
     (synopsis "Transient-based porcelain for avy")
     (description
@@ -35730,112 +35758,16 @@ (define-public emacs-casual-avy
     (license license:gpl3+)))
 
 (define-public emacs-casual-calc
-  (package
-    (name "emacs-casual-calc")
-    (version "3.0.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/kickingvegas/casual-calc")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1zn281rr2z557ja5c9xvwhzx4isxkma4v6shl7acnqhczb8kpnr4"))))
-    (build-system emacs-build-system)
-    (arguments
-     (list
-      #:lisp-directory "lisp"
-      ;; Tests require “casual-lib-test-utils”, which are not installed.
-      #:tests? #f))
-    (propagated-inputs (list emacs-casual-lib))
-    (home-page "https://github.com/kickingvegas/casual-calc")
-    (synopsis "Transient-based porcelain for calc")
-    (description
-     "Casual Calc is an opinionated Transient-based porcelain for Emacs Calc.")
-    (license license:gpl3+)))
+  (deprecated-package "emacs-casual-calc" emacs-casual))
 
 (define-public emacs-casual-dired
-  (package
-    (name "emacs-casual-dired")
-    (version "2.0.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/kickingvegas/casual-dired")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0p4k626svcy6jc1mpsiifpsbacrz7nsgyrb2m0icvi65nxcysj9q"))))
-    (build-system emacs-build-system)
-    (arguments
-     (list
-      #:lisp-directory "lisp"
-      ;; Tests require “casual-lib-test-utils”, which are not installed.
-      #:tests? #f))
-    (propagated-inputs (list emacs-casual-lib))
-    (home-page "https://github.com/kickingvegas/casual-dired")
-    (synopsis "Transient-based porcelain for Dired")
-    (description
-     "Casual Dired is an opinionated Transient-based porcelain for Emacs Dired.")
-    (license license:gpl3+)))
+  (deprecated-package "emacs-casual-dired" emacs-casual))
 
 (define-public emacs-casual-info
-  (package
-    (name "emacs-casual-info")
-    (version "2.0.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/kickingvegas/casual-info")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1q8yk71xv2v2ls94dc834c988aj2hfq1jv6nbddjxy0qn2hwxd2n"))))
-    (build-system emacs-build-system)
-    (arguments
-     (list
-      #:lisp-directory "lisp"
-      ;; Tests require “casual-lib-test-utils”, which are not installed.
-      #:tests? #f))
-    (propagated-inputs (list emacs-casual-lib))
-    (home-page "https://github.com/kickingvegas/casual-info")
-    (synopsis "Transient-based porcelain for info reader")
-    (description
-     "Casual Info is an opinionated Transient-based porcelain for Emacs Info reader.")
-    (license license:gpl3+)))
+  (deprecated-package "emacs-casual-info" emacs-casual))
 
 (define-public emacs-casual-lib
-  (package
-    (name "emacs-casual-lib")
-    (version "2.0.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/kickingvegas/casual-lib")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1hmr0zzwm3f88786j8p8x39jn5b8jja37x1iww4vd83dsvkksbpa"))))
-    (build-system emacs-build-system)
-    (arguments
-     (list #:test-command #~(list "make" "tests")
-           #:phases
-           #~(modify-phases %standard-phases
-               (add-after 'unpack 'move-source-files
-                 (lambda _
-                   (let ((el-files (find-files "./lisp" ".*\\.el$")))
-                     (for-each (lambda (f) (copy-file f (basename f)))
-                               el-files)))))))
-    (native-inputs (list python-minimal))
-    (home-page "https://github.com/kickingvegas/casual-lib")
-    (synopsis "Library package for the Emacs Casual porcelains")
-    (description
-     "Casual Lib is a library package used to support the Casual porcelains.")
-    (license license:gpl3+)))
+  (deprecated-package "emacs-casual-lib" emacs-casual))
 
 (define-public emacs-calibredb
   (package

base-commit: ca30726285b6883a3b1fa89db64177460af69c42
-- 
2.49.0