all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Karl Hallsby via Guix-patches via <guix-patches@gnu.org>
To: 66623@debbugs.gnu.org
Cc: Karl Hallsby <karl@hallsby.com>
Subject: [bug#66623] [PATCH 3/3] gnu: Add mahogany
Date: Thu, 19 Oct 2023 00:06:03 -0500	[thread overview]
Message-ID: <7dd80c8859e89e5395e4b419c54dfaaa870b46ac.1697691783.git.karl@hallsby.com> (raw)
In-Reply-To: <cover.1697691783.git.karl@hallsby.com>

* gnu/packages/wm.scm (New variable): Add mahogany window manager.
---
 gnu/packages/wm.scm | 71 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 8576d0297d..86276165e3 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -64,6 +64,7 @@
 ;;; Copyright © 2023 Jonathan Brielamier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2023 Vessel Wave <vesselwave@disroot.org>
 ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
+;;; Copyright © 2023 Raven Hallsby <karl@hallsby.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2614,6 +2615,76 @@ (define-public sbcl-stumpwm-battery-portable
 modeline.  It can be displayed in the modeline with %B.")
     (license (list license:expat license:gpl3+))))
 
+(define-public mahogany
+  (let ((commit "ca4472bdb284b4f70bb7365fbaa421f6c2d382d1")
+        (revision "0"))
+  (package
+    (name "mahogany")
+    (version (git-version "0.0.0" revision commit))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/stumpwm/mahogany")
+             (commit commit)))
+       (file-name (git-file-name "mahogany" version))
+       (sha256
+        (base32 "1bnnw5p0wp1lm7jvf66mlgiaxbxxxnd54nhxd2794ajlgmdfps3h"))))
+    (build-system asdf-build-system/sbcl)
+    (native-inputs
+     (list sbcl-fiasco
+           sbcl-prove))
+    (inputs
+     (list libxkbcommon
+           sbcl-xkbcommon
+           sbcl-wayland
+           sbcl-alexandria
+           sbcl-cl-ansi-text
+           sbcl-terminfo
+           sbcl-snakes
+           sbcl-iterate
+           sbcl-cffi ;; Provides cffi-grovel
+           sbcl-closer-mop
+           sbcl-cl-ppcre
+           sbcl-clx
+           wayland
+           wayland-protocols))
+    (outputs '("out" "lib"))
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'create-asdf-configuration 'build-program
+            (lambda* (#:key outputs #:allow-other-keys)
+              (build-program
+               (string-append (assoc-ref outputs "out") "/bin/mahogany")
+               outputs
+               #:entry-program '((mahogany::run-server) 0))))
+          (add-after 'build-program 'create-desktop-file
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((out (assoc-ref outputs "out"))
+                     (xsessions (string-append out "/share/xsessions")))
+                (mkdir-p xsessions)
+                (call-with-output-file
+                    (string-append xsessions "/mahogany.desktop")
+                  (lambda (file)
+                    (format file
+                       "[Desktop Entry]~@
+                        Name=stumpwm~@
+                        Comment=The Mahogany Window Manager~@
+                        Exec=~a/bin/mahogany~@
+                        TryExec=~@*~a/bin/mahogany~@
+                        Icon=~@
+                        Type=Application~%"
+                       out)))))))))
+    (synopsis "Window manager for Wayland written in Common Lisp")
+    (description
+     "Mahogany is a tiling window manager for Wayland modeled after StumpWM.
+While it is not a drop-in replacement for stumpwm, stumpwm users should be
+very comfortable with Mahogany.")
+    (home-page "https://github.com/stumpwm/mahogany")
+    (license license:gpl2+))))
+
 (define-public lemonbar
   (package
     (name "lemonbar")
-- 
2.41.0





  parent reply	other threads:[~2023-10-19  5:08 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-19  5:04 [bug#66623] [PATCH 0/3] Add Mahogany Window Manager Karl Hallsby via Guix-patches via
2023-10-19  5:06 ` [bug#66623] [PATCH 1/3] gnu: Add sbcl-xkbcommon package Karl Hallsby via Guix-patches via
2023-10-19  5:06 ` [bug#66623] [PATCH 2/3] gnu: Add sbcl-wayland package Karl Hallsby via Guix-patches via
2023-10-19  5:06 ` Karl Hallsby via Guix-patches via [this message]
2023-10-19  5:16   ` [bug#66623] [PATCH 3/3] gnu: Add mahogany Raven Hallsby via Guix-patches via
2023-10-19 12:08 ` [bug#66623] [PATCH 0/3] Add Mahogany Window Manager Guillaume Le Vaillant
2023-11-12 15:54 ` [bug#66623] [PATCH] gnu: Add mahogany Karl Hallsby via Guix-patches via
2023-11-12 16:27   ` Karl G. Hallsby via Guix-patches via
2023-11-15 13:37     ` Guillaume Le Vaillant
2023-11-22 14:44       ` Ludovic Courtès
2023-11-22 17:34         ` Karl G. Hallsby via Guix-patches via
2023-11-12 15:59 ` Karl Hallsby via Guix-patches via

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7dd80c8859e89e5395e4b419c54dfaaa870b46ac.1697691783.git.karl@hallsby.com \
    --to=guix-patches@gnu.org \
    --cc=66623@debbugs.gnu.org \
    --cc=karl@hallsby.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.