unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#33753] [PATCH 1/3] gnu: Add stumpwm-contrib.
@ 2018-12-15  2:06 Nam Nguyen
  2018-12-15  2:09 ` [bug#33753] [PATCH 2/3] gnu: Add stumpwm-cpu Nam Nguyen
                   ` (4 more replies)
  0 siblings, 5 replies; 23+ messages in thread
From: Nam Nguyen @ 2018-12-15  2:06 UTC (permalink / raw)
  To: 33753; +Cc: Nam Nguyen

* gnu/packages/lisp.scm (stumpwm-contrib): New variable.
---
 gnu/packages/lisp.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index d1c0a2ef3..b9e6c0e42 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -991,6 +992,41 @@ productive, customizable lisp based systems.")
     (inherit (sbcl-package->cl-source-package stumpwm))
     (name "cl-stumpwm")))
 
+(define stumpwm-contrib
+  (let ((commit "bd47cec14f7299711ac29468d2e1364d38a81bee")
+        (revision "1"))
+    (package
+      (name "stumpwm-contrib")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/stumpwm/stumpwm-contrib.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32 "0kh9vpmxssjvxgvl6ihpn0qh4l660n64iq80ivhagdvr8s045ddj"))))
+      (inputs
+       `(("stumpwm" ,stumpwm "lib")))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:phases
+         ;; Make stumpwm-contrib more modular.  Child modules must copy
+         ;; their source to $(out)/share/common-lisp/stumpwm-contrib.
+         (modify-phases %standard-phases
+           (add-after 'check 'delete-plugins
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively
+                (string-append (assoc-ref outputs "out")
+                               "/share/common-lisp/sbcl-source"))
+               #t)))))
+      (home-page "https://github.com/stumpwm/stumpwm-contrib")
+      (synopsis "Collection of StumpWM modules")
+      (description "Modules are a way to extend StumpWM using Lisp
+code.")
+      (license (list license:gpl2+ license:gpl3+ license:bsd-2)))))
+
 ;; The slynk that users expect to install includes all of slynk's contrib
 ;; modules.  Therefore, we build the base module and all contribs first; then
 ;; we expose the union of these as `sbcl-slynk'.  The following variable
-- 
2.20.0

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [bug#33753] [PATCH 2/3] gnu: Add stumpwm-cpu.
  2018-12-15  2:06 [bug#33753] [PATCH 1/3] gnu: Add stumpwm-contrib Nam Nguyen
@ 2018-12-15  2:09 ` Nam Nguyen
  2018-12-15  2:09   ` [bug#33753] [PATCH 3/3] gnu: emacs-stumpwm-mode: Use source and version of stumpwm-cpu Nam Nguyen
  2018-12-15  2:50 ` [bug#33753] stumpwm-contrib Nam Nguyen
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 23+ messages in thread
From: Nam Nguyen @ 2018-12-15  2:09 UTC (permalink / raw)
  To: 33753; +Cc: Nam Nguyen

* gnu/packages/lisp.scm (stumpwm-cpu): New variable.
---
 gnu/packages/lisp.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index b9e6c0e42..308159982 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -1027,6 +1027,32 @@ productive, customizable lisp based systems.")
 code.")
       (license (list license:gpl2+ license:gpl3+ license:bsd-2)))))
 
+(define-public stumpwm-cpu
+  (package (inherit stumpwm-contrib)
+    (name "stumpwm-cpu")
+    (arguments
+     (let ((cat "modeline")
+           (mod "cpu"))
+       (substitute-keyword-arguments (package-arguments stumpwm-contrib)
+         ((#:asd-file _ "") (string-append cat "/" mod "/" mod ".asd"))
+         ((#:asd-system-name _ #f) mod)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-before 'delete-plugins 'copy-plugin-source
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let* ((out (assoc-ref outputs "out"))
+                        (clisp (string-append out "/share/common-lisp"))
+                        (source (string-append clisp "/sbcl-source/"
+                                               ,mod "/" ,cat "/" ,mod))
+                        (dest (string-append clisp "/stumpwm-contrib/"
+                                             ,mod)))
+                   (mkdir-p dest)
+                   (copy-recursively source dest))
+                 #t)))))))
+    (synopsis "Add CPU info to the StumpWM modeline")
+    (description "Add CPU info to the StumpWM modeline.")
+    (license license:gpl3+)))
+
 ;; The slynk that users expect to install includes all of slynk's contrib
 ;; modules.  Therefore, we build the base module and all contribs first; then
 ;; we expose the union of these as `sbcl-slynk'.  The following variable
-- 
2.20.0

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [bug#33753] [PATCH 3/3] gnu: emacs-stumpwm-mode: Use source and version of stumpwm-cpu.
  2018-12-15  2:09 ` [bug#33753] [PATCH 2/3] gnu: Add stumpwm-cpu Nam Nguyen
@ 2018-12-15  2:09   ` Nam Nguyen
  0 siblings, 0 replies; 23+ messages in thread
From: Nam Nguyen @ 2018-12-15  2:09 UTC (permalink / raw)
  To: 33753; +Cc: Nam Nguyen

* gnu/packages/emacs.scm (emacs-stumpwm-mode): Use source and version of stumpwm-cpu.
---
 gnu/packages/emacs.scm | 44 ++++++++++++++++--------------------------
 1 file changed, 17 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 358f32cab..07d2c2104 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -122,6 +122,7 @@
   #:use-module (gnu packages video)
   #:use-module (gnu packages haskell)
   #:use-module (gnu packages wordnet)
+  #:use-module (gnu packages lisp)
   #:use-module (guix utils)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match))
@@ -10822,33 +10823,22 @@ bookmarks and history.")
       (license license:gpl3+))))
 
 (define-public emacs-stumpwm-mode
-  (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
-        (revision "1"))
-    (package
-      (name "emacs-stumpwm-mode")
-      (version (string-append "0.0.1-" revision "."
-                              (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/stumpwm/stumpwm-contrib.git")
-                      (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
-      (build-system emacs-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'chdir-elisp
-             ;; Elisp directory is not in root of the source.
-             (lambda _
-               (chdir "util/swm-emacs"))))))
-      (home-page "https://github.com/stumpwm/stumpwm-contrib")
-      (synopsis "Emacs minor-mode for Stumpwm")
-      (description "Emacs minor-mode for Stumpwm")
-      (license license:gpl3+))))
+  (package
+    (name "emacs-stumpwm-mode")
+    (version (package-version stumpwm-cpu))
+    (source (package-source stumpwm-cpu))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir-elisp
+           ;; Elisp directory is not in root of the source.
+           (lambda _
+             (chdir "util/swm-emacs"))))))
+    (home-page "https://github.com/stumpwm/stumpwm-contrib")
+    (synopsis "Emacs minor-mode for Stumpwm")
+    (description "Emacs minor-mode for Stumpwm")
+    (license license:gpl3+)))
 
 (define-public emacs-irfc
   (package
-- 
2.20.0

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [bug#33753] stumpwm-contrib
  2018-12-15  2:06 [bug#33753] [PATCH 1/3] gnu: Add stumpwm-contrib Nam Nguyen
  2018-12-15  2:09 ` [bug#33753] [PATCH 2/3] gnu: Add stumpwm-cpu Nam Nguyen
@ 2018-12-15  2:50 ` Nam Nguyen
  2018-12-21 17:06   ` Ludovic Courtès
  2018-12-24  9:21 ` [bug#33753] [PATCH 1/3] gnu: Add stumpwm modules Nam Nguyen
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 23+ messages in thread
From: Nam Nguyen @ 2018-12-15  2:50 UTC (permalink / raw)
  To: 33753

I am trying to make stumpwm-contrib less of a "grab bag" and more modular
and well-tested by breaking all the stumpwm extensions/modules into
separate recipes.

stumpwm-contrib deletes the source code and child
recipes copies their source code from their directory to
$(out)/share/common-lisp/stumpwm-contrib.

To test this, install stumpwm and stumpwm-cpu.

~/.stumpwmrc
********************************************************************************
(set-module-dir "~/.guix-profile/share/common-lisp/sbcl-bundle-systems")
(load-module "cpu")

(setf *screen-mode-line-format* '("%c %C %t %f [%n] %W"))

;; %c (CPU usage as %)
;; %C (CPU usage as bar graph)
;; %t (CPU temperature)
;; %f (CPU frequency)
********************************************************************************

To toggle the mode-line:
C-t semicolon mode-line <RET>

I violated the "Don't Repeat Yourself" (DRY) principle and have
stumpwm-{battery-portable,cpu,mem,pinentry,winner-mode} all tested and
working. I will postpone submission of those until stumpwm-cpu has been
accepted. All these submodules are nearly identical with only different
cat and mod variables. pinentry has some additional inputs. This results
in a lot of repeated code that looks nearly identical to stumpwm-cpu.

Another concern I had was for ~/.stumpwmrc, including sbcl-bundle-systems
(which contains symlinks to the compiled code) is necessary for
stumpwm-pinentry to work correctly. The other plugins can just use the
stumpwm-contrib directory I created.

;; (set-module-dir "~/.guix-profile/share/common-lisp/stumpwm-contrib")
(set-module-dir "~/.guix-profile/share/common-lisp/sbcl-bundle-systems")

Documentation (org-mode files) can be found in the stumpwm-contrib
directory.

Here is the general directory structure:
********************************************************************************
/home/user/.guix-profile/share/common-lisp:
 .
 ..
 sbcl-bundle-systems
 stumpwm-contrib

/home/user/.guix-profile/share/common-lisp/sbcl-bundle-systems:
 .
 ..
 battery-portable.asd -> /gnu/store/...-stumpwm-battery-portable-0.0.1-1.bd47cec/share/common-lisp/sbcl-bundle-systems/battery-portable.asd
 cpu.asd -> /gnu/store/...-stumpwm-cpu-0.0.1-1.bd47cec/share/common-lisp/sbcl-bundle-systems/cpu.asd
 mem.asd -> /gnu/store/...-stumpwm-mem-0.0.1-1.bd47cec/share/common-lisp/sbcl-bundle-systems/mem.asd
 pinentry.asd -> /gnu/store/...-stumpwm-pinentry-0.0.1-1.bd47cec/share/common-lisp/sbcl-bundle-systems/pinentry.asd
 swm-gaps.asd -> /gnu/store/...-stumpwm-gaps-0.0.1-1.bd47cec/share/common-lisp/sbcl-bundle-systems/swm-gaps.asd
 winner-mode.asd -> /gnu/store/...-stumpwm-winner-mode-0.0.1-1.bd47cec/share/common-lisp/sbcl-bundle-systems/winner-mode.asd

/home/user/.guix-profile/share/common-lisp/stumpwm-contrib:
 .
 ..
 battery-portable -> /gnu/store/...-stumpwm-battery-portable-0.0.1-1.bd47cec/share/common-lisp/stumpwm-contrib/battery-portable
 cpu -> /gnu/store/...-stumpwm-cpu-0.0.1-1.bd47cec/share/common-lisp/stumpwm-contrib/cpu
 mem -> /gnu/store/...-stumpwm-mem-0.0.1-1.bd47cec/share/common-lisp/stumpwm-contrib/mem
 pinentry -> /gnu/store/...-stumpwm-pinentry-0.0.1-1.bd47cec/share/common-lisp/stumpwm-contrib/pinentry
 swm-gaps -> /gnu/store/...-stumpwm-gaps-0.0.1-1.bd47cec/share/common-lisp/stumpwm-contrib/swm-gaps
 winner-mode -> /gnu/store/...-stumpwm-winner-mode-0.0.1-1.bd47cec/share/common-lisp/stumpwm-contrib/winner-mode

/home/user/.guix-profile/share/common-lisp/stumpwm-contrib/cpu:
 .
 ..
 cpu.asd
 cpu.lisp
 package.lisp
 README.org
********************************************************************************

Summary of questions:
1. Should the entire repository be bundled together instead of breaking
it into individual modules?
2. Should asdf-build-system/source be used instead of sbcl?  I had initially
copied the entire repository with all the source code, and it still worked.
3. Is there a way to by more DRY?
4. Should the stumpwm-contrib directory be named sbcl-sources (can't
recall the default directory of asdf-build-system/source)?

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [bug#33753] stumpwm-contrib
  2018-12-15  2:50 ` [bug#33753] stumpwm-contrib Nam Nguyen
@ 2018-12-21 17:06   ` Ludovic Courtès
  2018-12-21 18:18     ` Pierre Neidhardt
  0 siblings, 1 reply; 23+ messages in thread
From: Ludovic Courtès @ 2018-12-21 17:06 UTC (permalink / raw)
  To: Nam Nguyen; +Cc: Pierre Neidhardt, 33753

Hello!

Pierre, Chris: could you provide feedback to Nam?  I don’t use Stump
(yet!) so I wouldn’t know what to suggest.

  https://issues.guix.info/issue/33753

Thanks,
Ludo’.

Nam Nguyen <namn@berkeley.edu> skribis:

> I am trying to make stumpwm-contrib less of a "grab bag" and more modular
> and well-tested by breaking all the stumpwm extensions/modules into
> separate recipes.
>
> stumpwm-contrib deletes the source code and child
> recipes copies their source code from their directory to
> $(out)/share/common-lisp/stumpwm-contrib.
>
> To test this, install stumpwm and stumpwm-cpu.
>
> ~/.stumpwmrc
> ********************************************************************************
> (set-module-dir "~/.guix-profile/share/common-lisp/sbcl-bundle-systems")
> (load-module "cpu")
>
> (setf *screen-mode-line-format* '("%c %C %t %f [%n] %W"))
>
> ;; %c (CPU usage as %)
> ;; %C (CPU usage as bar graph)
> ;; %t (CPU temperature)
> ;; %f (CPU frequency)
> ********************************************************************************
>
> To toggle the mode-line:
> C-t semicolon mode-line <RET>
>
> I violated the "Don't Repeat Yourself" (DRY) principle and have
> stumpwm-{battery-portable,cpu,mem,pinentry,winner-mode} all tested and
> working. I will postpone submission of those until stumpwm-cpu has been
> accepted. All these submodules are nearly identical with only different
> cat and mod variables. pinentry has some additional inputs. This results
> in a lot of repeated code that looks nearly identical to stumpwm-cpu.
>
> Another concern I had was for ~/.stumpwmrc, including sbcl-bundle-systems
> (which contains symlinks to the compiled code) is necessary for
> stumpwm-pinentry to work correctly. The other plugins can just use the
> stumpwm-contrib directory I created.
>
> ;; (set-module-dir "~/.guix-profile/share/common-lisp/stumpwm-contrib")
> (set-module-dir "~/.guix-profile/share/common-lisp/sbcl-bundle-systems")
>
> Documentation (org-mode files) can be found in the stumpwm-contrib
> directory.
>
> Here is the general directory structure:
> ********************************************************************************
> /home/user/.guix-profile/share/common-lisp:
>  .
>  ..
>  sbcl-bundle-systems
>  stumpwm-contrib
>
> /home/user/.guix-profile/share/common-lisp/sbcl-bundle-systems:
>  .
>  ..
>  battery-portable.asd -> /gnu/store/...-stumpwm-battery-portable-0.0.1-1.bd47cec/share/common-lisp/sbcl-bundle-systems/battery-portable.asd
>  cpu.asd -> /gnu/store/...-stumpwm-cpu-0.0.1-1.bd47cec/share/common-lisp/sbcl-bundle-systems/cpu.asd
>  mem.asd -> /gnu/store/...-stumpwm-mem-0.0.1-1.bd47cec/share/common-lisp/sbcl-bundle-systems/mem.asd
>  pinentry.asd -> /gnu/store/...-stumpwm-pinentry-0.0.1-1.bd47cec/share/common-lisp/sbcl-bundle-systems/pinentry.asd
>  swm-gaps.asd -> /gnu/store/...-stumpwm-gaps-0.0.1-1.bd47cec/share/common-lisp/sbcl-bundle-systems/swm-gaps.asd
>  winner-mode.asd -> /gnu/store/...-stumpwm-winner-mode-0.0.1-1.bd47cec/share/common-lisp/sbcl-bundle-systems/winner-mode.asd
>
> /home/user/.guix-profile/share/common-lisp/stumpwm-contrib:
>  .
>  ..
>  battery-portable -> /gnu/store/...-stumpwm-battery-portable-0.0.1-1.bd47cec/share/common-lisp/stumpwm-contrib/battery-portable
>  cpu -> /gnu/store/...-stumpwm-cpu-0.0.1-1.bd47cec/share/common-lisp/stumpwm-contrib/cpu
>  mem -> /gnu/store/...-stumpwm-mem-0.0.1-1.bd47cec/share/common-lisp/stumpwm-contrib/mem
>  pinentry -> /gnu/store/...-stumpwm-pinentry-0.0.1-1.bd47cec/share/common-lisp/stumpwm-contrib/pinentry
>  swm-gaps -> /gnu/store/...-stumpwm-gaps-0.0.1-1.bd47cec/share/common-lisp/stumpwm-contrib/swm-gaps
>  winner-mode -> /gnu/store/...-stumpwm-winner-mode-0.0.1-1.bd47cec/share/common-lisp/stumpwm-contrib/winner-mode
>
> /home/user/.guix-profile/share/common-lisp/stumpwm-contrib/cpu:
>  .
>  ..
>  cpu.asd
>  cpu.lisp
>  package.lisp
>  README.org
> ********************************************************************************
>
> Summary of questions:
> 1. Should the entire repository be bundled together instead of breaking
> it into individual modules?
> 2. Should asdf-build-system/source be used instead of sbcl?  I had initially
> copied the entire repository with all the source code, and it still worked.
> 3. Is there a way to by more DRY?
> 4. Should the stumpwm-contrib directory be named sbcl-sources (can't
> recall the default directory of asdf-build-system/source)?

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [bug#33753] stumpwm-contrib
  2018-12-21 17:06   ` Ludovic Courtès
@ 2018-12-21 18:18     ` Pierre Neidhardt
       [not found]       ` <875zvlv8r1.fsf@dustycloud.org>
  0 siblings, 1 reply; 23+ messages in thread
From: Pierre Neidhardt @ 2018-12-21 18:18 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Nam Nguyen, 33753

[-- Attachment #1: Type: text/plain, Size: 928 bytes --]

Hi Nam,

Well, I don't use StumpWM (I'm on EXWM) but I know the ASDF build system, so
maybe I can help a bit.

> : 1. Should the entire repository be bundled together instead of breaking
> : it into individual modules?

One package per .asd.

> : 2. Should asdf-build-system/source be used instead of sbcl?  I had initially
> : copied the entire repository with all the source code, and it still worked.

No, since StumpWM only supports sbcl, stick to the sbcl build system.

> : 3. Is there a way to by more DRY?

I haven't looked into the details, but you could probably use a a function /
macro to define those packages.
Lots of other packages do this, e.g. linux, gcc, clang, etc.

> : 4. Should the stumpwm-contrib directory be named sbcl-sources (can't
> : recall the default directory of asdf-build-system/source)?

Sorry, which directory exactly?

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [bug#33753] [PATCH 1/3] gnu: Add stumpwm modules.
  2018-12-15  2:06 [bug#33753] [PATCH 1/3] gnu: Add stumpwm-contrib Nam Nguyen
  2018-12-15  2:09 ` [bug#33753] [PATCH 2/3] gnu: Add stumpwm-cpu Nam Nguyen
  2018-12-15  2:50 ` [bug#33753] stumpwm-contrib Nam Nguyen
@ 2018-12-24  9:21 ` Nam Nguyen
  2018-12-24  9:21   ` [bug#33753] [PATCH 2/3] gnu: Add sbcl-percent-encoding Nam Nguyen
  2018-12-24  9:21   ` [bug#33753] [PATCH 3/3] gnu: emacs-stumpwm-mode: Use source and version of stumpwm-cpu Nam Nguyen
  2018-12-25  8:19 ` [bug#33753] [PATCH 1/3] gnu: Add stumpwm modules Nam Nguyen
  2020-03-23  7:16 ` [bug#33753] [PATCH 0/3] ttf-fonts module in StumpWM Oleg Pykhalov
  4 siblings, 2 replies; 23+ messages in thread
From: Nam Nguyen @ 2018-12-24  9:21 UTC (permalink / raw)
  To: 33753; +Cc: Nam Nguyen

* gnu/packages/lisp.scm (stumpwm-contrib, stumpwm-module)
  (stumpwm-cpu, stumpwm-mem, stumpwm-hostname, stumpwm-battery-portable)
  (stumpwm-winner-mode, stumpwm-swm-gaps)
  (stumpwm-pinentry): New variables.
---
 gnu/packages/lisp.scm | 111 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 111 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 261e720e2..711c57cbc 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1032,6 +1033,116 @@ productive, customizable lisp based systems.")
     (inherit (sbcl-package->cl-source-package stumpwm))
     (name "cl-stumpwm")))
 
+(define stumpwm-contrib
+  (let ((commit "bd47cec14f7299711ac29468d2e1364d38a81bee")
+        (revision "1"))
+    (package
+      (name "stumpwm-contrib")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/stumpwm/stumpwm-contrib.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0kh9vpmxssjvxgvl6ihpn0qh4l660n64iq80ivhagdvr8s045ddj"))))
+      (inputs
+       `(("stumpwm" ,stumpwm "lib")))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:tests? #f ; No tests exist.
+         #:phases
+         (modify-phases %standard-phases
+           ;; Delete all sources.
+           (add-after 'check 'delete-modules
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively
+                (string-append (assoc-ref outputs "out")
+                               "/share/common-lisp/sbcl-source"))
+               #t)))))
+      (home-page "https://github.com/stumpwm/stumpwm-contrib")
+      (synopsis "Collection of StumpWM modules")
+      (description "Modules are a way to extend StumpWM using Lisp
+code.")
+      (license (list license:gpl2+      ; TODO: swm-gaps Missing license?
+                     license:gpl3+      ; cpu, mem, battery-portable,
+                                        ; winner-mode, pinentry
+                     license:bsd-2))))) ; hostname
+
+(define* (stumpwm-module mod cat syn desc)
+  (package (inherit stumpwm-contrib)
+    (name (string-append "stumpwm-" mod))
+    (arguments
+     (substitute-keyword-arguments (package-arguments stumpwm-contrib)
+       ((#:asd-file _ "") (string-append cat "/" mod "/" mod ".asd"))
+       ((#:asd-system-name _ #f) mod)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           ;; Keep module's sources.
+           (add-before 'delete-modules 'copy-module-sources
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (clisp (string-append out "/share/common-lisp"))
+                      (source (string-append clisp "/sbcl-source/"
+                                             ,mod "/" ,cat "/" ,mod))
+                      (dest (string-append clisp "/stumpwm-contrib/"
+                                           ,mod)))
+                 (mkdir-p dest)
+                 (copy-recursively source dest))
+               #t))))))
+    (synopsis syn)
+    (description desc)))
+
+(define-public stumpwm-cpu
+  (stumpwm-module "cpu" "modeline"
+                  "Display CPU info"
+                  "Display CPU info in the StumpWM modeline."))
+
+(define-public stumpwm-mem
+  (stumpwm-module "mem" "modeline"
+                  "Display memory info"
+                  "Display memory info in the StumpWM modeline."))
+
+(define-public stumpwm-hostname
+  (stumpwm-module "hostname" "modeline"
+                  "Display hostname"
+                  "Display hostname in the StumpWM modeline."))
+
+(define-public stumpwm-battery-portable
+  (stumpwm-module "battery-portable" "modeline"
+                  "Display laptop battery info"
+                  "Display laptop battery info in the StumpWM
+modeline."))
+
+(define-public stumpwm-winner-mode
+  (stumpwm-module "winner-mode" "util"
+                  "Emacs' winner-mode for StumpWM"
+                  "Winner mode records changes in the window
+configuration so that changes can be undone.  It hooks into StumpWM to
+dump layouts.  This only works per group."))
+
+(define-public stumpwm-swm-gaps
+  (stumpwm-module "swm-gaps" "util"
+                  "Pretty (useless) gaps for StumpWM"
+                  "Add gaps to StumpWM running along various borders."))
+
+(define-public stumpwm-pinentry
+  (let ((pinentry (stumpwm-module "pinentry" "util"
+                                  "Integrate GnuPG Agent with StumpWM"
+                                  "GnuPG Agent uses
+@code{stumpwm-pinentry} to ask for your password.")))
+    (package (inherit pinentry)
+      (inputs
+       `(("sbcl-cffi" ,sbcl-cffi)
+         ("sbcl-usocket-server" ,sbcl-usocket-server)
+         ("sbcl-percent-encoding" ,sbcl-percent-encoding)
+         ,@(package-inputs stumpwm-contrib)))
+      (propagated-inputs
+       `(("netcat" ,netcat))))))
+
 ;; The slynk that users expect to install includes all of slynk's contrib
 ;; modules.  Therefore, we build the base module and all contribs first; then
 ;; we expose the union of these as `sbcl-slynk'.  The following variable
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [bug#33753] [PATCH 2/3] gnu: Add sbcl-percent-encoding.
  2018-12-24  9:21 ` [bug#33753] [PATCH 1/3] gnu: Add stumpwm modules Nam Nguyen
@ 2018-12-24  9:21   ` Nam Nguyen
  2018-12-24  9:21   ` [bug#33753] [PATCH 3/3] gnu: emacs-stumpwm-mode: Use source and version of stumpwm-cpu Nam Nguyen
  1 sibling, 0 replies; 23+ messages in thread
From: Nam Nguyen @ 2018-12-24  9:21 UTC (permalink / raw)
  To: 33753; +Cc: Nam Nguyen

* gnu/packages/lisp.scm (sbcl-percent-encoding): New variable.
---
 gnu/packages/lisp.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 711c57cbc..84da001b2 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -1502,6 +1502,30 @@ the string into one of the standard Common Lisp number types, if possible, or
 else @code{parse-number} signals an error of type @code{invalid-number}.")
     (license license:bsd-3)))
 
+(define-public sbcl-percent-encoding
+  (package
+    (name "sbcl-percent-encoding")
+    (version "20121013")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://beta.quicklisp.org/archive/percent-encoding/"
+                           "2012-10-13/percent-encoding-"
+                           version "-git.tgz"))
+       (sha256
+        (base32
+         "1dlf77c1iha1d7h6fzmv090mf8p6w20fqjrd5zcbh2kiicyabhfb"))))
+    (inputs
+     `(("sbcl-anaphora" ,sbcl-anaphora)
+       ("sbcl-babel" ,sbcl-babel)
+       ("sbcl-fiveam" ,sbcl-fiveam)))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://common-lisp.net/project/percent-encoding/")
+    (synopsis "Library for percent-encoding (URI encoding) for Common Lisp")
+    (description "@code{percent-encoding} is a URI encoding library for
+Common Lisp, as defined in RFC 3986.")
+    (license license:expat)))
+
 (define-public sbcl-iterate
   (package
     (name "sbcl-iterate")
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [bug#33753] [PATCH 3/3] gnu: emacs-stumpwm-mode: Use source and version of stumpwm-cpu.
  2018-12-24  9:21 ` [bug#33753] [PATCH 1/3] gnu: Add stumpwm modules Nam Nguyen
  2018-12-24  9:21   ` [bug#33753] [PATCH 2/3] gnu: Add sbcl-percent-encoding Nam Nguyen
@ 2018-12-24  9:21   ` Nam Nguyen
  1 sibling, 0 replies; 23+ messages in thread
From: Nam Nguyen @ 2018-12-24  9:21 UTC (permalink / raw)
  To: 33753; +Cc: Nam Nguyen

* gnu/packages/emacs.scm (emacs-stumpwm-mode): Use source and version of stumpwm-cpu.
---
 gnu/packages/emacs.scm | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 7fdcfb1a3..2e6962695 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -122,6 +122,7 @@
   #:use-module (gnu packages video)
   #:use-module (gnu packages haskell)
   #:use-module (gnu packages wordnet)
+  #:use-module (gnu packages lisp)
   #:use-module (guix utils)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match))
@@ -10864,17 +10865,8 @@ bookmarks and history.")
         (revision "1"))
     (package
       (name "emacs-stumpwm-mode")
-      (version (string-append "0.0.1-" revision "."
-                              (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/stumpwm/stumpwm-contrib.git")
-                      (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
+      (version (package-version stumpwm-cpu))
+      (source (package-source stumpwm-cpu))
       (build-system emacs-build-system)
       (arguments
        `(#:phases
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [bug#33753] stumpwm-contrib
       [not found]       ` <875zvlv8r1.fsf@dustycloud.org>
@ 2018-12-24 10:01         ` Nam Nguyen
  2018-12-24 10:14           ` Pierre Neidhardt
  0 siblings, 1 reply; 23+ messages in thread
From: Nam Nguyen @ 2018-12-24 10:01 UTC (permalink / raw)
  To: 33753; +Cc: mail

Hi all,

> you could probably use a a function / macro to define those packages

Thank you for pointing me to examples. This helped me refactor.

> : 4. Should the stumpwm-contrib directory be named sbcl-sources (can't
> : recall the default directory of asdf-build-system/source)?

> Sorry, which directory exactly?

If I use asdf-build-system/source instead of sbcl I get the sources for
cpu stored in:
~/.guix-profile/share/common-lisp/source/cpu

Instead, I arbitrarily created stumpwm-contrib to store the sources:
~/.guix-profile/share/common-lisp/stumpwm-contrib/cpu

To rephrase question #4: Should I rename stumpwm-contrib to be "source"
to be more consistent with the "default" naming, or is stumpwm-contrib
sufficient?

As noted before, ~/.stumpwmrc will have to contain the precompiled code in:
(set-module-dir "~/.guix-profile/share/common-lisp/sbcl-bundle-systems")
in order to work with the more advanced plugins like pinentry.

AIUI, stumpwm-contrib/cpu contains the source code and documentation
org-mode files, and sbcl-bundle-systems contains the precompiled code.

This time, I included all the modules for review, as refactoring helped
to shorten the patches.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [bug#33753] stumpwm-contrib
  2018-12-24 10:01         ` Nam Nguyen
@ 2018-12-24 10:14           ` Pierre Neidhardt
  2018-12-24 10:20             ` Efraim Flashner
  2018-12-25  9:01             ` Nam Nguyen
  0 siblings, 2 replies; 23+ messages in thread
From: Pierre Neidhardt @ 2018-12-24 10:14 UTC (permalink / raw)
  To: Nam Nguyen; +Cc: 33753

[-- Attachment #1: Type: text/plain, Size: 905 bytes --]


> If I use asdf-build-system/source instead of sbcl I get the sources for
> cpu stored in:
> ~/.guix-profile/share/common-lisp/source/cpu

But you should not use asdf-build-system/source for StumpWM since it's not
supported by any Lisp other than SBCL, right?

> As noted before, ~/.stumpwmrc will have to contain the precompiled code in:
> (set-module-dir "~/.guix-profile/share/common-lisp/sbcl-bundle-systems")
> in order to work with the more advanced plugins like pinentry.

And then you would not need this line either if I'm not mistaken.

> AIUI,

What is AIUI? :/

> stumpwm-contrib/cpu contains the source code and documentation
> org-mode files, and sbcl-bundle-systems contains the precompiled code.

Both are included with asdf-build-system/sbcl.  Is this OK in this context?

Sorry, no time for testing at the moment.

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [bug#33753] stumpwm-contrib
  2018-12-24 10:14           ` Pierre Neidhardt
@ 2018-12-24 10:20             ` Efraim Flashner
  2018-12-25  9:01             ` Nam Nguyen
  1 sibling, 0 replies; 23+ messages in thread
From: Efraim Flashner @ 2018-12-24 10:20 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: Nam Nguyen, 33753

[-- Attachment #1: Type: text/plain, Size: 345 bytes --]

On Mon, Dec 24, 2018 at 11:14:20AM +0100, Pierre Neidhardt wrote:
> 
> > AIUI,
> 
> What is AIUI? :/
> 

as i understand it

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [bug#33753] [PATCH 1/3] gnu: Add stumpwm modules.
  2018-12-15  2:06 [bug#33753] [PATCH 1/3] gnu: Add stumpwm-contrib Nam Nguyen
                   ` (2 preceding siblings ...)
  2018-12-24  9:21 ` [bug#33753] [PATCH 1/3] gnu: Add stumpwm modules Nam Nguyen
@ 2018-12-25  8:19 ` Nam Nguyen
  2018-12-25  8:19   ` [bug#33753] [PATCH 2/3] gnu: Add sbcl-percent-encoding Nam Nguyen
  2020-03-23  7:16 ` [bug#33753] [PATCH 0/3] ttf-fonts module in StumpWM Oleg Pykhalov
  4 siblings, 1 reply; 23+ messages in thread
From: Nam Nguyen @ 2018-12-25  8:19 UTC (permalink / raw)
  To: 33753

* gnu/packages/lisp.scm (stumpwm-cpu, stumpwm-mem, stumpwm-hostname)
  (stumpwm-battery-portable, stumpwm-winner-mode, stumpwm-swm-gaps)
  (stumpwm-pinentry): New public variables.
  (stumpwm-contrib, stumpwm-module): New private variables.
---
 gnu/packages/lisp.scm | 104 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 261e720e2..4fb9a8a00 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1032,6 +1033,109 @@ productive, customizable lisp based systems.")
     (inherit (sbcl-package->cl-source-package stumpwm))
     (name "cl-stumpwm")))
 
+(define stumpwm-contrib
+  (let ((commit "bd47cec14f7299711ac29468d2e1364d38a81bee")
+        (revision "1"))
+    (package
+      (name "stumpwm-contrib")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/stumpwm/stumpwm-contrib.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0kh9vpmxssjvxgvl6ihpn0qh4l660n64iq80ivhagdvr8s045ddj"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("stumpwm" ,stumpwm "lib")))
+      (home-page "https://github.com/stumpwm/stumpwm-contrib")
+      (synopsis "Collection of StumpWM modules")
+      (description "Modules are a way to extend StumpWM using Lisp
+code.")
+      (license (list license:gpl2+      ; TODO: swm-gaps Missing license?
+                     license:gpl3+      ; cpu, mem, battery-portable,
+                                        ; winner-mode, pinentry
+                     license:bsd-2))))) ; hostname
+
+(define* (stumpwm-module mod cat syn desc)
+  (package (inherit stumpwm-contrib)
+    (name (string-append "stumpwm-" mod))
+    (arguments
+     `(#:tests? #f ; No tests exist.
+       #:asd-file (string-append ,cat "/" ,mod "/" ,mod ".asd")
+       #:asd-system-name ,mod
+       #:phases
+       (modify-phases %standard-phases
+         ;; Keep this module's sources and delete the rest.
+         (add-after 'check 'copy-module-sources
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (clisp (string-append out "/share/common-lisp"))
+                    (sbcl-source (string-append clisp "/sbcl-source"))
+                    (source (string-append sbcl-source "/"
+                                           ,mod "/" ,cat "/" ,mod))
+                    (tmp (string-append out "/" ,mod)))
+               (mkdir-p tmp)
+               (copy-recursively source tmp)
+               (delete-file-recursively sbcl-source)
+               (copy-recursively tmp
+                                 (string-append sbcl-source "/" ,mod))
+               (delete-file-recursively tmp))
+             #t)))))
+    (synopsis syn)
+    (description desc)))
+
+(define-public stumpwm-cpu
+  (stumpwm-module "cpu" "modeline"
+                  "Display CPU info"
+                  "Display CPU info in the StumpWM modeline."))
+
+(define-public stumpwm-mem
+  (stumpwm-module "mem" "modeline"
+                  "Display memory info"
+                  "Display memory info in the StumpWM modeline."))
+
+(define-public stumpwm-hostname
+  (stumpwm-module "hostname" "modeline"
+                  "Display hostname"
+                  "Display hostname in the StumpWM modeline."))
+
+(define-public stumpwm-battery-portable
+  (stumpwm-module "battery-portable" "modeline"
+                  "Display laptop battery info"
+                  "Display laptop battery info in the StumpWM
+modeline."))
+
+(define-public stumpwm-winner-mode
+  (stumpwm-module "winner-mode" "util"
+                  "Emacs' winner-mode for StumpWM"
+                  "Winner mode records changes in the window
+configuration so that changes can be undone.  It hooks into StumpWM to
+dump layouts.  This only works per group."))
+
+(define-public stumpwm-swm-gaps
+  (stumpwm-module "swm-gaps" "util"
+                  "Pretty (useless) gaps for StumpWM"
+                  "Add gaps to StumpWM running along various borders."))
+
+(define-public stumpwm-pinentry
+  (let ((pinentry (stumpwm-module "pinentry" "util"
+                                  "Integrate GnuPG Agent with StumpWM"
+                                  "GnuPG Agent uses
+@code{stumpwm-pinentry} to ask for your password.")))
+    (package (inherit pinentry)
+      (inputs
+       `(("sbcl-cffi" ,sbcl-cffi)
+         ("sbcl-usocket-server" ,sbcl-usocket-server)
+         ("sbcl-percent-encoding" ,sbcl-percent-encoding)
+         ,@(package-inputs stumpwm-contrib)))
+      (propagated-inputs
+       `(("netcat" ,netcat))))))
+
 ;; The slynk that users expect to install includes all of slynk's contrib
 ;; modules.  Therefore, we build the base module and all contribs first; then
 ;; we expose the union of these as `sbcl-slynk'.  The following variable
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [bug#33753] [PATCH 2/3] gnu: Add sbcl-percent-encoding.
  2018-12-25  8:19 ` [bug#33753] [PATCH 1/3] gnu: Add stumpwm modules Nam Nguyen
@ 2018-12-25  8:19   ` Nam Nguyen
  0 siblings, 0 replies; 23+ messages in thread
From: Nam Nguyen @ 2018-12-25  8:19 UTC (permalink / raw)
  To: 33753

* gnu/packages/lisp.scm (sbcl-percent-encoding): New variable.
---
 gnu/packages/lisp.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 4fb9a8a00..5d99c7dfb 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -1495,6 +1495,30 @@ the string into one of the standard Common Lisp number types, if possible, or
 else @code{parse-number} signals an error of type @code{invalid-number}.")
     (license license:bsd-3)))
 
+(define-public sbcl-percent-encoding
+  (package
+    (name "sbcl-percent-encoding")
+    (version "20121013")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://beta.quicklisp.org/archive/percent-encoding/"
+                           "2012-10-13/percent-encoding-"
+                           version "-git.tgz"))
+       (sha256
+        (base32
+         "1dlf77c1iha1d7h6fzmv090mf8p6w20fqjrd5zcbh2kiicyabhfb"))))
+    (inputs
+     `(("sbcl-anaphora" ,sbcl-anaphora)
+       ("sbcl-babel" ,sbcl-babel)
+       ("sbcl-fiveam" ,sbcl-fiveam)))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://common-lisp.net/project/percent-encoding/")
+    (synopsis "Library for percent-encoding (URI encoding) for Common Lisp")
+    (description "@code{percent-encoding} is a URI encoding library for
+Common Lisp, as defined in RFC 3986.")
+    (license license:expat)))
+
 (define-public sbcl-iterate
   (package
     (name "sbcl-iterate")
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [bug#33753] stumpwm-contrib
  2018-12-24 10:14           ` Pierre Neidhardt
  2018-12-24 10:20             ` Efraim Flashner
@ 2018-12-25  9:01             ` Nam Nguyen
  2018-12-26  7:13               ` Nam Nguyen
  2018-12-27 10:51               ` Pierre Neidhardt
  1 sibling, 2 replies; 23+ messages in thread
From: Nam Nguyen @ 2018-12-25  9:01 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: 33753

> Sorry, no time for testing at the moment.
No worries. Thanks for letting me know.

> Both are included with asdf-build-system/sbcl.  Is this OK in this context?

In this context, the entire repo is contained in sbcl-source. 
COPYING  media/  minor-mode/  modeline/  README.org  update-readme.sh  util/

I've resorted to a clunky way of deleting everything but the util/cpu
subdirectory that I care about retaining.
cp -r sbcl-source/util/cpu out/cpu
rm -rf sbcl-source
cp -r out/cpu sbcl-source/cpu

I have cleaned up the code a bit in these latest two patches so that
there is only one phase that does this. The directories look like so:

---8<------------------------------------------------------------
~/.guix-profile/share/common-lisp/sbcl-source$ ls
battery-portable  cpu  hostname  mem  pinentry  swm-gaps  winner-mode

~/.guix-profile/share/common-lisp/sbcl-bundle-systems$ ls
battery-portable.asd  cpu.asd  hostname.asd  mem.asd  pinentry.asd  swm-gaps.asd  winner-mode.asd
---8<------------------------------------------------------------

> (set-module-dir "~/.guix-profile/share/common-lisp/sbcl-bundle-systems")
> And then you would not need this line either if I'm not mistaken.

I referred to the documentation[1], and it seems that module-dir can be set.

In order not to set module-dir at runtime, perhaps the stumpwm recipe
can be configured[2] with the correct module-dir?

I suppose it would be more user-friendly to not have to use set-module-dir
and just use the modules directly (like how emacs works with guix). If
this is option is more desired, I can try configuring stumpwm and will
report back.

---8<------------------------------------------------------------
(defvar *load-path* nil
  "A list of paths in which modules can be found, by default it is
  populated by any asdf systems found in `*module-dir*' set from the
  configure script when StumpWM was built, or later by the user using
  `add-to-load-path'")
---8<------------------------------------------------------------

[1] https://github.com/stumpwm/stumpwm/wiki/Modules
[2] https://github.com/stumpwm/stumpwm/blob/master/module.lisp

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [bug#33753] stumpwm-contrib
  2018-12-25  9:01             ` Nam Nguyen
@ 2018-12-26  7:13               ` Nam Nguyen
  2018-12-27 10:51               ` Pierre Neidhardt
  1 sibling, 0 replies; 23+ messages in thread
From: Nam Nguyen @ 2018-12-26  7:13 UTC (permalink / raw)
  To: 33753

I did some investigating by querying within stumpwm.

C-t ; brings up a stumpwm prompt.
---8<------------------------------------------------------------
eval-line (print *module-dir*)

/gnu/store/...stumpwm-18.11-lib/.stumpwm.d/modules/
---8<------------------------------------------------------------

It seems to set *module-dir* at build time to be
/gnu/store/...stumpwm-18.11-lib/.stumpwm.d/modules/. However, this .stump.d
doesn't exist and it was created when stumpwm was compiled. There are
also potentially a FHS assumption with (getenv "HOME") and it happens to
evaluate to the /gnu/store item.

StumpWM gives option #1 of setting module-dir at build time of
StumpWM. I could try patching
---8<------------------------------------------------------------
> (pathname-as-directory (concat (getenv "HOME") "/.stumpwm.d/modules"))
---8<------------------------------------------------------------
in order to store the modules at some standard, system-wide location? Hard
coding it as /var/guix/profiles/per-user/user/guix-profile/share/common-lisp
is incorrect because guix won't build as the user. Maybe I can force stumpwm
and the stumpwm-contrib modules to use the same stumpwm library. This seems
tricky/impossible, though, since they are all individual modules.

StumpWM also offers option #2 of calling set-module-dir to set this
variable at run-time in ~/.stumpwmrc. This is how it currently works and
it seems more simple.
---8<-------------------  ~/.stumpwmrc --------------------------
(set-module-dir "~/.guix-profile/share/common-lisp/sbcl-bundle-systems")
---8<------------------------------------------------------------

*module-dir* is essentially a seed for *load-path*, which is where the
files like cpu.asd and cpu--system.fasl are. With the current setup,
load-path is populated correctly.
---8<------------------------------------------------------------
eval-line (print *load-path*)

/gnu/store/stumpwm-cpu/lib/sbcl/"
...
/gnu/store/stumpwm-mem/lib/sbcl/"
---8<------------------------------------------------------------

Option #3 is to use "add-to-load-path", but that seems similar to
Option #1. I suppose this is a matter of investigating how stumpwm
handles its modules/extensions. What I know thus far points me to err
toward setting module-dir at run-time, since it is a one-liner.

Relevant snippets from module.lisp
(https://github.com/stumpwm/stumpwm/blob/master/module.lisp)

---8<------------------------------------------------------------
(defvar *module-dir*
  (pathname-as-directory (concat (getenv "HOME") "/.stumpwm.d/modules"))
  "The location of the contrib modules on your system.")

(defun build-load-path (path)
  "Maps subdirectories of path, returning a list of all subdirs in the
  path which contain any files ending in .asd"
  ...

(defvar *load-path* nil
  "A list of paths in which modules can be found, by default it is
  populated by any asdf systems found in `*module-dir*' set from the
  configure script when StumpWM was built, or later by the user using
  `add-to-load-path'")

(defun set-module-dir (dir)
  "Sets the location of the for StumpWM to find modules"
  (when (stringp dir)
    (setf dir (pathname (concat dir "/"))))
  (setf *module-dir* dir)
  (init-load-path *module-dir*))
---8<------------------------------------------------------------

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [bug#33753] stumpwm-contrib
  2018-12-25  9:01             ` Nam Nguyen
  2018-12-26  7:13               ` Nam Nguyen
@ 2018-12-27 10:51               ` Pierre Neidhardt
  1 sibling, 0 replies; 23+ messages in thread
From: Pierre Neidhardt @ 2018-12-27 10:51 UTC (permalink / raw)
  To: Nam Nguyen; +Cc: 33753

[-- Attachment #1: Type: text/plain, Size: 105 bytes --]

OK, thanks for the details.  I'll look into this later.

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [bug#33753] [PATCH 0/3] ttf-fonts module in StumpWM
  2018-12-15  2:06 [bug#33753] [PATCH 1/3] gnu: Add stumpwm-contrib Nam Nguyen
                   ` (3 preceding siblings ...)
  2018-12-25  8:19 ` [bug#33753] [PATCH 1/3] gnu: Add stumpwm modules Nam Nguyen
@ 2020-03-23  7:16 ` Oleg Pykhalov
  2020-03-23  7:24   ` [bug#33753] [PATCH 1/3] gnu: Add sbcl-clx-truetype Oleg Pykhalov
  4 siblings, 1 reply; 23+ messages in thread
From: Oleg Pykhalov @ 2020-03-23  7:16 UTC (permalink / raw)
  To: 33753; +Cc: Oleg Pykhalov

Hello.  I wish to push the following if you don't mind.  We probably could
make a better solution later, but I think it's good enough for now.  WDYT?

This patch series allows you to use ttf-fonts module in StumpWM.

Oleg Pykhalov (3):
  gnu: Add sbcl-clx-truetype.
  gnu: emacs-stumpwm-mode: Update to 0.0.1-1.dd5b037.
  gnu: Add sbcl-stumpwm-ttf-fonts.

 doc/guix-cookbook.texi     | 41 +++++++++++++++++++++++++++++++++++++-
 gnu/packages/emacs-xyz.scm |  4 ++--
 gnu/packages/lisp-xyz.scm  | 35 ++++++++++++++++++++++++++++++++
 gnu/packages/wm.scm        | 33 +++++++++++++++++++++++++++++-
 4 files changed, 109 insertions(+), 4 deletions(-)

-- 
2.25.1

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [bug#33753] [PATCH 1/3] gnu: Add sbcl-clx-truetype.
  2020-03-23  7:16 ` [bug#33753] [PATCH 0/3] ttf-fonts module in StumpWM Oleg Pykhalov
@ 2020-03-23  7:24   ` Oleg Pykhalov
  2020-03-23  7:24     ` [bug#33753] [PATCH 2/3] gnu: emacs-stumpwm-mode: Update to 0.0.1-1.dd5b037 Oleg Pykhalov
                       ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Oleg Pykhalov @ 2020-03-23  7:24 UTC (permalink / raw)
  To: 33753; +Cc: Oleg Pykhalov

* gnu/packages/lisp-xyz.scm (sbcl-clx-truetype): New variable.
---
 gnu/packages/lisp-xyz.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 043c219e5e..d0af123171 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
 ;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
+;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -619,6 +620,40 @@ from other CLXes around the net.")
 (define-public ecl-clx
   (sbcl-package->ecl-package sbcl-clx))
 
+(define-public sbcl-clx-truetype
+  (package
+    (name "sbcl-clx-truetype")
+    (version "2016-08-25")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://beta.quicklisp.org/archive/clx-truetype/" version
+             "/clx-truetype-" (string-delete #\- version) "-git.tgz"))
+       (sha256
+        (base32
+         "0ndy067rg9w6636gxwlpnw7f3ck9nrnjb03444pprik9r3c9in67"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (substitute* "package.lisp"
+             ((":export") ":export\n   :+font-cache-filename+"))
+           #t))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("clx" ,sbcl-clx)
+       ("zpb-ttf" ,sbcl-zpb-ttf)
+       ("cl-vectors" ,sbcl-cl-vectors)
+       ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
+       ("cl-fad" ,sbcl-cl-fad)
+       ("cl-store" ,sbcl-cl-store)
+       ("trivial-features" ,sbcl-trivial-features)))
+    (home-page "http://beta.quicklisp.org/archive/clx-truetype/")
+    (synopsis "Antialiased TrueType font rendering using CLX and XRender")
+    (description "CLX-TrueType is pure common lisp solution for
+antialiased TrueType font rendering using CLX and XRender extension.")
+    (license license:expat)))
+
 (define-public sbcl-cl-ppcre-unicode
   (package (inherit sbcl-cl-ppcre)
     (name "sbcl-cl-ppcre-unicode")
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [bug#33753] [PATCH 2/3] gnu: emacs-stumpwm-mode: Update to 0.0.1-1.dd5b037.
  2020-03-23  7:24   ` [bug#33753] [PATCH 1/3] gnu: Add sbcl-clx-truetype Oleg Pykhalov
@ 2020-03-23  7:24     ` Oleg Pykhalov
  2020-03-23  7:24     ` [bug#33753] [PATCH 3/3] gnu: Add sbcl-stumpwm-ttf-fonts Oleg Pykhalov
  2020-03-23  9:06     ` [bug#33753] [PATCH 1/3] gnu: Add sbcl-clx-truetype Guillaume Le Vaillant
  2 siblings, 0 replies; 23+ messages in thread
From: Oleg Pykhalov @ 2020-03-23  7:24 UTC (permalink / raw)
  To: 33753; +Cc: Oleg Pykhalov

* gnu/packages/emacs-xyz.scm (emacs-stumpwm-mode): Update to 0.0.1-1.dd5b037.
---
 gnu/packages/emacs-xyz.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index fe2210ac79..0069c19a2b 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -14536,7 +14536,7 @@ bookmarks and history.")
     (license license:gpl3+)))
 
 (define-public emacs-stumpwm-mode
-  (let ((commit "5328f85fbf6a8b08c758c17b9435368bf7a68f39"))
+  (let ((commit "dd5b037923ec7d3cc27c55806bcec5a1b8cf4e91"))
     (package
       (name "emacs-stumpwm-mode")
       (version (git-version "0.0.1" "1" commit))
@@ -14548,7 +14548,7 @@ bookmarks and history.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "00kf4k8bqadi5s667wb96sn549v2kvw01zwszjrg7nhd805m1ng6"))))
+                  "0ahxdj9f884afpzxczx6mx7l4nwg4kw6afqaq7lwhf7lxcwylldn"))))
       (build-system emacs-build-system)
       (arguments
        `(#:phases
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [bug#33753] [PATCH 3/3] gnu: Add sbcl-stumpwm-ttf-fonts.
  2020-03-23  7:24   ` [bug#33753] [PATCH 1/3] gnu: Add sbcl-clx-truetype Oleg Pykhalov
  2020-03-23  7:24     ` [bug#33753] [PATCH 2/3] gnu: emacs-stumpwm-mode: Update to 0.0.1-1.dd5b037 Oleg Pykhalov
@ 2020-03-23  7:24     ` Oleg Pykhalov
  2020-03-23  9:06     ` [bug#33753] [PATCH 1/3] gnu: Add sbcl-clx-truetype Guillaume Le Vaillant
  2 siblings, 0 replies; 23+ messages in thread
From: Oleg Pykhalov @ 2020-03-23  7:24 UTC (permalink / raw)
  To: 33753; +Cc: Oleg Pykhalov

* gnu/packages/wm.scm (sbcl-stumpwm-ttf-fonts): New variable.
* doc/guix-cookbook.texi (Customizing a Window Manager): Document
SBCL-STUMPWM-TTF-FONTS installation and configuration.
---
 doc/guix-cookbook.texi | 41 ++++++++++++++++++++++++++++++++++++++++-
 gnu/packages/wm.scm    | 33 ++++++++++++++++++++++++++++++++-
 2 files changed, 72 insertions(+), 2 deletions(-)

diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi
index 477b7e3dff..84a9bb38a4 100644
--- a/doc/guix-cookbook.texi
+++ b/doc/guix-cookbook.texi
@@ -11,6 +11,7 @@
 Copyright @copyright{} 2019 Ricardo Wurmus@*
 Copyright @copyright{} 2019 Efraim Flashner@*
 Copyright @copyright{} 2019 Pierre Neidhardt@*
+Copyright @copyright{} 2020 Oleg Pykhalov@*
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -1319,7 +1320,8 @@ chapter is to demonstrate some advanced configuration concepts.
 reference.
 
 @menu
-* Customizing the Kernel::     Creating and using a custom Linux kernel on Guix System.
+* Customizing the Kernel::       Creating and using a custom Linux kernel on Guix System.
+* Customizing a Window Manager:: Handle customization of a Window manager on Guix System.
 @end menu
 
 @node Customizing the Kernel
@@ -1562,6 +1564,43 @@ likely that you'll need to modify the initrd on a machine using a custom
 kernel, since certain modules which are expected to be built may not be
 available for inclusion into the initrd.
 
+@node Customizing a Window Manager
+@section Customizing a Window Manager
+@cindex wm
+
+@node StumpWM
+@subsection StumpWM
+@cindex stumpwm
+
+You could install StumpWM with a Guix system by adding
+@code{stumpwm-checkout} and optionally @code{`(,stumpwm-checkout "lib")}
+packages to a system configuration file, e.g. @file{/etc/config.scm}.
+
+An example configuration can look like this:
+
+@lisp
+(operating-system
+  ;; …
+  (packages (append (list sbcl stumpwm-checkout `(,stumpwm-checkout "lib"))
+                    %base-packages)))
+@end lisp
+
+@cindex stumpwm fonts
+By default StumpWM uses X11 fonts, which could be small or pixelated on
+your system.  You could fix this by installing StumpWM contrib Lisp
+module @code{sbcl-stumpwm-ttf-fonts}, adding it to Guix system packages.
+
+Then you need to add the following code to a StumpWM configuration file
+@file{~/.stumpwm.d/init.lisp}:
+
+@lisp
+(require :ttf-fonts)
+(setf xft:*font-dirs* '("/run/current-system/profile/share/fonts/"))
+(setf clx-truetype:+font-cache-filename+ (concat (getenv "HOME") "/.fonts/font-cache.sexp"))
+(xft:cache-fonts)
+(set-font (make-instance 'xft:font :family "DejaVu Sans Mono" :subfamily "Book" :size 11))
+@end lisp
+
 @c *********************************************************************
 @node Advanced package management
 @chapter Advanced package management
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 25ec278e2c..7217d985f2 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -14,7 +14,7 @@
 ;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 ;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
 ;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net>
@@ -1660,6 +1660,37 @@ productive, customizable lisp based systems.")
 (define-public sbcl-stumpwm+slynk
   (deprecated-package "sbcl-stumpwm-with-slynk" stumpwm+slynk))
 
+(define-public sbcl-stumpwm-ttf-fonts
+  (let ((commit "dd5b037923ec7d3cc27c55806bcec5a1b8cf4e91")
+        (revision "1"))
+    (package
+      (name "sbcl-ttf-fonts")
+      (version (git-version "0.0.1" revision commit)) ;no upstream release
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/stumpwm/stumpwm-contrib.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0ahxdj9f884afpzxczx6mx7l4nwg4kw6afqaq7lwhf7lxcwylldn"))))
+      (inputs
+       `(("stumpwm" ,stumpwm "lib")
+         ("clx-truetype" ,sbcl-clx-truetype)))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'chdir
+             (lambda _
+               (chdir "util/ttf-fonts"))))))
+      (home-page "https://github.com/stumpwm/stumpwm-contrib")
+      (synopsis "Implementation of TTF font rendering for Lisp")
+      (description "This package provides a Lisp implementation of TTF font
+rendering.")
+      (license (list license:gpl2+ license:gpl3+ license:bsd-2)))))
+
 (define-public lemonbar
   (let ((commit "35183ab81d2128dbb7b6d8e119cc57846bcefdb4")
         (revision "1"))
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [bug#33753] [PATCH 1/3] gnu: Add sbcl-clx-truetype.
  2020-03-23  7:24   ` [bug#33753] [PATCH 1/3] gnu: Add sbcl-clx-truetype Oleg Pykhalov
  2020-03-23  7:24     ` [bug#33753] [PATCH 2/3] gnu: emacs-stumpwm-mode: Update to 0.0.1-1.dd5b037 Oleg Pykhalov
  2020-03-23  7:24     ` [bug#33753] [PATCH 3/3] gnu: Add sbcl-stumpwm-ttf-fonts Oleg Pykhalov
@ 2020-03-23  9:06     ` Guillaume Le Vaillant
  2020-03-30 20:24       ` bug#33753: " Oleg Pykhalov
  2 siblings, 1 reply; 23+ messages in thread
From: Guillaume Le Vaillant @ 2020-03-23  9:06 UTC (permalink / raw)
  To: 33753; +Cc: Oleg Pykhalov

[-- Attachment #1: Type: text/plain, Size: 546 bytes --]


Oleg Pykhalov <go.wigust@gmail.com> skribis:

> * gnu/packages/lisp-xyz.scm (sbcl-clx-truetype): New variable.

The author of clx-truetype suggests using truetype-clx instead (see
https://github.com/quicklisp/quicklisp-projects/issues/1774). Have you
checked if that would work for the ttf-fonts module of stumpwm-contrib?

If not, maybe we could get the sources from a fork of the original
repository that disappeared instead of fetching the Quicklisp archive
(for example, https://github.com/l04m33/clx-truetype has clx-truetype
version 0.1).

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* bug#33753: [PATCH 1/3] gnu: Add sbcl-clx-truetype.
  2020-03-23  9:06     ` [bug#33753] [PATCH 1/3] gnu: Add sbcl-clx-truetype Guillaume Le Vaillant
@ 2020-03-30 20:24       ` Oleg Pykhalov
  0 siblings, 0 replies; 23+ messages in thread
From: Oleg Pykhalov @ 2020-03-30 20:24 UTC (permalink / raw)
  To: Guillaume Le Vaillant; +Cc: 33753-done, 33753

[-- Attachment #1: Type: text/plain, Size: 685 bytes --]

Hi,

Apologies for a delay.

Guillaume Le Vaillant <glv@posteo.net> writes:

> The author of clx-truetype suggests using truetype-clx instead (see
> https://github.com/quicklisp/quicklisp-projects/issues/1774). Have you
> checked if that would work for the ttf-fonts module of stumpwm-contrib?
>
> If not, maybe we could get the sources from a fork of the original
> repository that disappeared instead of fetching the Quicklisp archive
> (for example, https://github.com/l04m33/clx-truetype has clx-truetype
> version 0.1).

I've tested in a VM, it works.  Thank you for noticing this!

Also I pushed stumpish package in addition to this series. 

Regards,
Oleg.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2020-03-30 20:25 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-15  2:06 [bug#33753] [PATCH 1/3] gnu: Add stumpwm-contrib Nam Nguyen
2018-12-15  2:09 ` [bug#33753] [PATCH 2/3] gnu: Add stumpwm-cpu Nam Nguyen
2018-12-15  2:09   ` [bug#33753] [PATCH 3/3] gnu: emacs-stumpwm-mode: Use source and version of stumpwm-cpu Nam Nguyen
2018-12-15  2:50 ` [bug#33753] stumpwm-contrib Nam Nguyen
2018-12-21 17:06   ` Ludovic Courtès
2018-12-21 18:18     ` Pierre Neidhardt
     [not found]       ` <875zvlv8r1.fsf@dustycloud.org>
2018-12-24 10:01         ` Nam Nguyen
2018-12-24 10:14           ` Pierre Neidhardt
2018-12-24 10:20             ` Efraim Flashner
2018-12-25  9:01             ` Nam Nguyen
2018-12-26  7:13               ` Nam Nguyen
2018-12-27 10:51               ` Pierre Neidhardt
2018-12-24  9:21 ` [bug#33753] [PATCH 1/3] gnu: Add stumpwm modules Nam Nguyen
2018-12-24  9:21   ` [bug#33753] [PATCH 2/3] gnu: Add sbcl-percent-encoding Nam Nguyen
2018-12-24  9:21   ` [bug#33753] [PATCH 3/3] gnu: emacs-stumpwm-mode: Use source and version of stumpwm-cpu Nam Nguyen
2018-12-25  8:19 ` [bug#33753] [PATCH 1/3] gnu: Add stumpwm modules Nam Nguyen
2018-12-25  8:19   ` [bug#33753] [PATCH 2/3] gnu: Add sbcl-percent-encoding Nam Nguyen
2020-03-23  7:16 ` [bug#33753] [PATCH 0/3] ttf-fonts module in StumpWM Oleg Pykhalov
2020-03-23  7:24   ` [bug#33753] [PATCH 1/3] gnu: Add sbcl-clx-truetype Oleg Pykhalov
2020-03-23  7:24     ` [bug#33753] [PATCH 2/3] gnu: emacs-stumpwm-mode: Update to 0.0.1-1.dd5b037 Oleg Pykhalov
2020-03-23  7:24     ` [bug#33753] [PATCH 3/3] gnu: Add sbcl-stumpwm-ttf-fonts Oleg Pykhalov
2020-03-23  9:06     ` [bug#33753] [PATCH 1/3] gnu: Add sbcl-clx-truetype Guillaume Le Vaillant
2020-03-30 20:24       ` bug#33753: " Oleg Pykhalov

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).