Patchwork [v2,11/13] gnu: Add cl-stumpwm.

login
register
mail settings
Submitter Andy Patterson
Date Oct. 3, 2016, 2:41 a.m.
Message ID <20161003024139.19975-12-ajpatter@uwaterloo.ca>
Download mbox | patch
Permalink /patch/16195/
State New
Headers show

Comments

Andy Patterson - Oct. 3, 2016, 2:41 a.m.
* gnu/packages/lisp.scm (cl-stumpwm, sbcl-stumpwm, ecl-stumpwm): New
  variables.
---
 gnu/packages/lisp.scm | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

Patch

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index fa7f727..3a59c86 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -785,3 +785,67 @@  from other CLXes around the net.")
 
 (define-public ecl-clx
   (sbcl-package->ecl-package sbcl-clx))
+
+(define-public sbcl-stumpwm
+  (package
+    (name "sbcl-stumpwm")
+    (version "0.9.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/stumpwm/stumpwm/archive/"
+                    version ".tar.gz"))
+              (sha256
+               (base32 "1fqabij4zcsqg1ywgdv2irp1ys23dwc8ms9ai55lb2i47hgv7z3x"))
+              (file-name (string-append "stumpwm-" version ".tar.gz"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
+              ("sbcl-clx" ,sbcl-clx)))
+    (outputs '("out" "bin"))
+    (arguments
+     '(#:special-dependencies '("sb-posix")
+       #:entry-program
+       '((stumpwm:stumpwm)
+         0)
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'generate-binary 'create-desktop-file
+           (lambda* (#:key outputs lisp binary? #:allow-other-keys)
+             (let ((output (assoc-ref outputs (if binary? "out" "bin")))
+                   (xsessions "/share/xsessions")
+                   (name (package-name->name+version
+                          (strip-store-file-name (assoc-ref outputs "out")))))
+               (mkdir-p (string-append output xsessions))
+               (with-output-to-file
+                   (string-append output xsessions
+                                  "/stumpwm.desktop")
+                 (lambda _
+                   (format #t
+                    "[Desktop Entry]~@
+                     Name=stumpwm~@
+                     Comment=The Stump Window Manager~@
+                     Exec=~a/bin/~a~@
+                     TryExec=~@*~a/bin/~a~@
+                     Icon=~@
+                     Type=Application~%"
+                    output
+                    (if binary? name (remove-lisp-from-name name lisp)))))
+               #t))))))
+    (synopsis "Window manager written in Common Lisp")
+    (description "Stumpwm is a window manager written entirely in Common Lisp.
+It attempts to be highly customizable while relying entirely on the keyboard
+for input.  These design decisions reflect the growing popularity of
+productive, customizable lisp based systems.")
+    (home-page "http://github.com/stumpwm/stumpwm")
+    (license license:gpl2+)
+    (properties `((ecl-variant . ,(delay ecl-stumpwm))))))
+
+(define-public cl-stumpwm
+  (sbcl-package->cl-source-package sbcl-stumpwm))
+
+(define-public ecl-stumpwm
+  (let ((base (sbcl-package->ecl-package sbcl-stumpwm)))
+    (package
+      (inherit base)
+      (outputs '("out"))
+      (arguments '()))))