gnu: Add sbcl-stumpwm-ttf-fonts.

* 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.
This commit is contained in:
Oleg Pykhalov 2020-03-22 11:20:50 +03:00
parent 31ee29161c
commit 65051fdce1
No known key found for this signature in database
GPG Key ID: 167F8EA5001AFA9C
2 changed files with 85 additions and 2 deletions

@ -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,56 @@ 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
(use-modules (gnu))
(use-package-modules wm)
(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:
@lisp
(use-modules (gnu))
(use-package-modules fonts wm)
(operating-system
;; …
(packages (append (list sbcl stumpwm-checkout `(,stumpwm-checkout "lib"))
sbcl-stumpwm-ttf-fonts font-dejavu %base-packages)))
@end lisp
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

@ -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>
@ -1661,6 +1661,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"))