summaryrefslogtreecommitdiff
path: root/suweren/home/services/fontutils.scm
diff options
context:
space:
mode:
authorMarek Paśnikowski <marek@marekpasnikowski.pl>2024-11-17 17:22:15 +0100
committerMarek Paśnikowski <marek@marekpasnikowski.pl>2024-11-17 17:22:15 +0100
commitf17d63a44aacb62e4cb5d03278960bb57a6bbf15 (patch)
treec0764d394fba1dda055b5681c7c4e0a0034f4c30 /suweren/home/services/fontutils.scm
parent5a4e42e0983d96aba6df2f1cb6bafac8e1bda552 (diff)
refactor(fontutils): implement dynamic indentation
This change implements a set of functions to enable dynamic indentation with use of a single function call like indent-one-level or indent-two-levels.
Diffstat (limited to 'suweren/home/services/fontutils.scm')
-rw-r--r--suweren/home/services/fontutils.scm48
1 files changed, 28 insertions, 20 deletions
diff --git a/suweren/home/services/fontutils.scm b/suweren/home/services/fontutils.scm
index ebc5f62..9888117 100644
--- a/suweren/home/services/fontutils.scm
+++ b/suweren/home/services/fontutils.scm
@@ -50,25 +50,33 @@
indentation)))
(define rules
- (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)))
+ (list antialias
+ hinting
+ hintstyle
+ rgba
+ monospace
+ sans-serif
+ serif
+ #f))
+
+(define indent-one-level
+ (indent-xml 1 ; level
+ ))
+
+(define (indent-rule rule)
+ (if rule ; test
+ (list indent-one-level ; consequent
+ rule)
+ (list #\newline) ; alternate
+ ))
+
+(define formatted-rules
+ (map-in-order indent-rule ; proc
+ rules ; arg1
+ ))
(define-public suweren-home-fontconfig-service-type
- (gnu:services:simple-service
- 'suweren-fontconfig
- gnu:home:services:fontutils:home-fontconfig-service-type
- (list rules)))
+ (gnu:services:simple-service 'suweren-fontconfig ; name
+ gnu:home:services:fontutils:home-fontconfig-service-type ; target
+ (list formatted-rules) ; value
+ ))