summaryrefslogtreecommitdiff
path: root/suweren/home/services/fontutils.scm
blob: c752d5773b64933d0ddcf700889209473e72a246 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
(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 hintstyle
        '(match (@ (target "font"))
                (edit (@ (mode "assign")
                         (name "hintstyle"))
                      (const "hintfull"))))

(define rgba
        '(match (@ (target "font"))
        (edit (@ (mode "assign")
                        (name "rgba"))
                        (const "rgb"))))

(define (indent-xml level)
        (let* ((depth (* level 2))
               (indentation (make-string depth
                                         #\space)))
              (string-append "\n"
                             indentation)))

(define rules
        (let* ((monospace '(alias (family "monospace")
                                (prefer (family "Unifont"))))
               (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)))