(define-module (suweren home services fontutils) #:use-module ((gnu home services fontutils) #:prefix gnu:home:services:fontutils:) #:use-module ((gnu services) #:prefix gnu:services:)) (define antialias '(match (@ (target "font")) (edit (@ (mode "assign") (name "antialias")) (bool "true")))) (define hinting '(match (@ (target "font")) (edit (@ (mode "assign") (name "hinting")) (bool "true")))) (define (indent-xml level) (let* ((depth (* level 2)) (indentation (make-string depth #\space))) (string-append "\n" indentation))) (define rules (let* ((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"))))) (list (indent-xml 1) antialias (indent-xml 1) hinting (indent-xml 1) hintstyle (indent-xml 1) rgba (indent-xml 1) monospace (indent-xml 1) sans-serif (indent-xml 1) serif (indent-xml 0)))) (define-public suweren-home-fontconfig-service-type (gnu:services:simple-service 'suweren-fontconfig gnu:home:services:fontutils:home-fontconfig-service-type (list rules)))