(define-module (suweren home services fontutils) ;; suweren-home-fontconfig-service-type #:use-module (gnu home services fontutils) ;; suweren-home-fontconfig-service-type #:use-module (gnu services)) (define-public suweren-home-fontconfig-service-type (let* ((antialias '(match (@ (target "font")) (edit (@ (mode "assign") (name "antialias")) (bool "true")))) (hinting '(match (@ (target "font")) (edit (@ (mode "assign") (name "hinting")) (bool "true")))) (hintstyle '(match (@ (target "font")) (edit (@ (mode "assign") (name "hintstyle")) (const "hintfull")))) (monospace '(alias (family "monospace") (prefer (family "Unifont")))) (rgba '(match (@ (target "font")) (edit (@ (mode "assign") (name "rgba")) (const "rgb")))) (sans-serif '(alias (family "sans-serif") (prefer (family "Unifont")))) (serif '(alias (family "serif") (prefer (family "Unifont")))) ;; TODO sxml -> (sxml) (rules (list antialias hinting hintstyle rgba monospace sans-serif serif)) ;; TODO Remove the hardcoded path by using an appropriate variable. ;; TODO string -> (sxml) -> fontconfig-extension (extensions (list "~/.guix-home/profile/share/fonts" rules))) ;; TODO symbol -> service-type? -> fontconfig-extension -> service (simple-service 'suweren-fontconfig home-fontconfig-service-type extensions)))