diff options
-rw-r--r-- | doc/guix-cookbook.texi | 54 | ||||
-rw-r--r-- | gnu/packages/wm.scm | 33 |
2 files changed, 85 insertions, 2 deletions
diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi index 477b7e3dff..58a5ba1c80 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,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 diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 5d28cac38a..bdff0491a5 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> @@ -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")) |