Hi, Taiju HIGASHI writes: > Taiju HIGASHI writes: > >> Hi, >> >> Ludovic Courtès writes: >> >>> Hi, >>> >>> Taiju HIGASHI skribis: >>> >>>> Andrew Tropin writes: >>> >>> [...] >>> >>>>>> Andrew Tropin skribis: >>>>>> >>>>>>> If serialization would support G-exps, we could write >>>>>>> >>>>>>> (list #~"RAW_XML_HERE") >>>>>> >>>>>> There’s a one-to-one lossless mapping between XML and SXML, so I don’t >>>>>> think it makes sense to support XML-in-strings when we have SXML. >>>>>> >>>>>> The only thing it would give us, as I see it, is the ability to generate >>>>>> syntactically-invalid XML. Maybe we can live without it? :-) >>>>> >>>>> Of course we can :), but we won't be able: >>>>> >>>>> 1. To take already existing xml config and use it without rewriting. >>>> >>>> I find it surprisingly important to be able to simply copy and paste >>>> settings without having to rewrite existing settings or those listed on >>>> a web page somewhere. I know we can easily convert from XML to SXML, >>>> but those unfamiliar with SXML may find it a bothering task. >>> >>> OK, that makes sense. >>> >>> But then, let’s not allow users to intersperse XML-in-strings in the >>> middle of XML. It should be either a user-provided file/string or the >>> generated config, but not a mixture of both; that’d be a recipe for >>> confusion. >>> >>> How about this: the service takes either a >>> record or a file-like object? >>> >>> (We can even have a “gexp compiler” for to >>> make that transparent.) >> >> Thank you for your consideration. >> >> That idea sounds good. I don't know if I can successfully implement >> this, but I will consider it and give it a try. >> >> Thanks, > > I'm trying to implement the following, is it consistent with the intent > of what you suggested? > > (define (add-fontconfig-config-file user-config) > `(("fontconfig/fonts.conf" > ,(if (home-fontconfig-configuration? user-config) > (mixed-text-file > "fonts.conf" > " > > " > (serialize-configuration user-config home-fontconfig-configuration-fields) > "\n") > user-config)))) > > > It is assumed that configurations can be specified in one of the > following ways. > > * fontconfig-configuration: > > (home-environment > (packages (list font-google-noto)) > (services > (append > (list > (service home-bash-service-type)) > (modify-services %home-base-services > (home-fontconfig-service-type > config => (home-fontconfig-configuration > (font-directories > (cons* "~/fonts" %home-fontconfig-base-font-directories)) > (default-font-serif-family "Noto Serif CJK JP") > (default-font-sans-serif-family "Noto Sans Serif CJK JP") > (default-font-monospace-family "PlemolJP Console") > (extra-config > '(foo "bar")))))))) > > > Note: > %home-fontconfig-base-font-directories is the new variable I plan to > export as the default value, based on Andrew's and Liliana's point. > > * file-like objects: > > (home-environment > (packages (list font-google-noto)) > (services > (append > (list > (service home-bash-service-type)) > (modify-services %home-base-services > (home-fontconfig-service-type > config => (local-file "/path/to/your/fonts.conf")))))) > > Thanks, Sorry for the long time it has taken to resolve the issue. What do you think about it? Thanks, -- Taiju