blob: e6534c6664d1bba6e0863249fba3add7e6b26f6a (
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
;;; SPDX-FileCopyrightText: 2024 Marek Paśnikowski <marek@marekpasnikowski.pl>
;;; SPDX-License-Identifier: GPL-3.0-or-later
(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 "false"))))
(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 monospace
'(alias (family "monospace")
(prefer (family "Unifont"))))
(define sans-serif
'(alias (family "sans-serif")
(prefer (family "Unifont"))))
(define serif
'(alias (family "serif")
(prefer (family "Unifont"))))
(define (indent-xml level)
(let* ((depth (* level
2))
(indentation (make-string depth
#\space)))
(string-append "\n"
indentation)))
(define rules
(list antialias
hinting
hintstyle
rgba
monospace
sans-serif
serif
#f))
(define indent-one-level
(indent-xml 1))
(define (indent-rule rule)
(if rule
(list indent-one-level
rule)
(list #\newline)))
(define formatted-rules
(map-in-order indent-rule
rules))
(define-public suweren-home-fontconfig-service-type
(gnu:services:simple-service 'suweren-fontconfig
gnu:home:services:fontutils:home-fontconfig-service-type
(list formatted-rules)))
|