From: Taiju HIGASHI <higashi@taiju.info>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 57963@debbugs.gnu.org, liliana.prikler@gmail.com, andrew@trop.in
Subject: [bug#57963] [PATCH 0/1] Support user's fontconfig.
Date: Thu, 29 Sep 2022 10:01:03 +0900 [thread overview]
Message-ID: <87y1u3ngds.fsf@taiju.info> (raw)
In-Reply-To: <87v8p7dwvc.fsf_-_@gnu.org> ("Ludovic Courtès"'s message of "Wed, 28 Sep 2022 23:15:03 +0200")
Ludovic Courtès <ludo@gnu.org> writes:
> Hi,
>
> Taiju HIGASHI <higashi@taiju.info> skribis:
>
>> I just sent you the v3 patch.
>>
>> I have changed only the interface of `preferred-defalut-font` slightly
>> from what I suggested the other day.
>>
>> We configure the service as follows.
>>
>> (simple-service
>> 'my-fontconfig-service
>> home-fontconfig-service-type
>> (home-fontconfig-configuration
>> (font-directories
>> (list "~/fonts"))
>> (preferred-default-font
>> (default-font
>> (serif "Noto Serif CJK JP")
>> (sans-serif "Noto Sans CJK JP")
>> (monospace "PlemolJP Console")))
>> (extra-config
>> `((match (@ (target font))
>> (edit (@ (mode assign)
>> (name antialias))
>> (bool true)))))))
>
> Looks nicer IMO!
>
>>> +(define (home-fontconfig-extend original-config extend-configs)
>>> + (home-fontconfig-configuration
>>> + (inherit original-config)
>>> + (font-directories
>>> + (append
>>> + (home-fontconfig-configuration-font-directories original-config)
>>> + (append-map home-fontconfig-configuration-font-directories
>>> extend-configs)))
>>> + (preferred-default-font
>>> + (home-fontconfig-configuration-preferred-default-font
>>> + (if (null? extend-configs)
>>> + original-config
>>> + (last extend-configs))))
>>
>> This is the part I am most concerned about, not sure if replacing the
>> preferred-default-font setting with the last setting is the proper way
>> to go about it.
>
> It’s unusual for a service to receive extensions that are the full
> configuration object of that service. Because then, indeed, you have to
> determine how to “merge” those configuration objects.
>
> The common patterns that we have are:
>
> 1. The service accepts as extensions things that represent part of its
> configuration and where merging makes sense.
>
> For example, nginx can be extended with
> <nginx-location-configuration> objects, but not with a full-blown
> <nginx-configuration>.
>
> 2. Similar, but the service has specific records for extensions.
>
> The example that comes to mind is ‘home-bash-service-type’, which
> accepts <home-bash-extension> records as its extensions.
Thank you. I understand well.
I felt out of place because there was no service that can full
configuration such this one.
> So…
>
> I wonder, should we, as a first commit, move
> ‘home-fontconfig-service-type’ out of the essential services to a
> ‘%base-home-services’ variable yet to be defined?
>
> I don’t see any good reason to have it here (“essential” services should
> be limited to those that may not be replaced or removed; in (gnu
> system), this includes services that depend on information available in
> <operating-system>).
>
> Once we’ve done that, perhaps we can forget about extensions, at least
> for now, and let users who need to configure things write:
>
> (modify-services %base-home-services
> (home-fontconfig-service-type
> config => …))
>
> WDYT?
I found out what essential services should be.
I'm going to move it from essential services to base-home-services.
>> I wanted to write a test as well, but since it was to be handled by
>> gexp, I could not figure out how to write a test that would validate the
>> gexp result using only exported methods. (I would like to write tests
>> for serialized functions that are private functions.)
>
> Hmm.
>
> Once we’ve settled on an interface, the commit that makes this change
> should include an update of doc/guix.texi.
Yes. I can write the draft, but I may have to ask you to finish it because
I'm not good at writing English.
It would be a waste of time for you to spend a long time correcting my
poor grammar and expressions.
Thanks,
--
Taiju
next prev parent reply other threads:[~2022-09-29 1:02 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-21 0:27 [bug#57963] [PATCH 0/1] Support user's fontconfig Taiju HIGASHI
2022-09-21 0:29 ` [bug#57963] [PATCH 1/1] home: fontutils: " Taiju HIGASHI
2022-09-21 8:54 ` Liliana Marie Prikler
2022-09-21 9:59 ` Taiju HIGASHI
2022-09-21 11:40 ` Liliana Marie Prikler
2022-09-22 1:27 ` Taiju HIGASHI
2022-09-23 7:20 ` Liliana Marie Prikler
2022-09-22 1:20 ` [bug#57963] [PATCH v2] " Taiju HIGASHI
2022-09-22 6:14 ` Andrew Tropin
2022-09-22 8:53 ` Ludovic Courtès
2022-09-22 9:50 ` Taiju HIGASHI
2022-09-24 15:52 ` [bug#57963] [PATCH 0/1] " Ludovic Courtès
2022-09-24 22:58 ` Taiju HIGASHI
2022-09-25 6:25 ` Liliana Marie Prikler
2022-09-25 7:29 ` Taiju HIGASHI
2022-09-25 7:34 ` Taiju HIGASHI
2022-09-25 15:50 ` Liliana Marie Prikler
2022-09-26 1:43 ` Taiju HIGASHI
2022-09-26 18:19 ` Liliana Marie Prikler
2022-09-27 9:55 ` [bug#57963] [PATCH v3] home: fontutils: " Taiju HIGASHI
2022-09-27 10:10 ` Taiju HIGASHI
2022-09-28 21:15 ` [bug#57963] [PATCH 0/1] " Ludovic Courtès
2022-09-29 1:01 ` Taiju HIGASHI [this message]
2022-09-29 14:28 ` Ludovic Courtès
2022-09-29 14:51 ` Taiju HIGASHI
2022-09-29 16:02 ` ( via Guix-patches via
2022-09-30 0:12 ` Taiju HIGASHI
2022-09-30 18:30 ` liliana.prikler
2022-10-01 11:11 ` Taiju HIGASHI
2022-09-28 19:11 ` [bug#57963] [PATCH v3] home: fontutils: " Liliana Marie Prikler
2022-09-29 0:31 ` Taiju HIGASHI
2022-09-29 14:46 ` Taiju HIGASHI
2022-09-29 14:36 ` [bug#57963] [PATCH v4 1/2] home-services: Add base Taiju HIGASHI
2022-09-29 14:36 ` [bug#57963] [PATCH v4 2/2] home: fontutils: Support user's fontconfig Taiju HIGASHI
2022-09-29 14:55 ` Taiju HIGASHI
2022-09-30 18:34 ` liliana.prikler
2022-10-01 11:19 ` Taiju HIGASHI
2022-10-01 16:14 ` liliana.prikler
2022-10-02 13:22 ` Taiju HIGASHI
2022-10-01 21:57 ` Ludovic Courtès
2022-10-02 13:38 ` Taiju HIGASHI
2022-09-29 14:43 ` [bug#57963] [PATCH v4 1/2] home-services: Add base Liliana Marie Prikler
2022-09-29 15:09 ` Taiju HIGASHI
2022-09-30 18:21 ` liliana.prikler
2022-10-01 11:08 ` Taiju HIGASHI
2022-10-01 21:47 ` Ludovic Courtès
2022-10-02 13:45 ` Taiju HIGASHI
2022-10-02 14:59 ` Liliana Marie Prikler
2022-10-03 23:27 ` Taiju HIGASHI
2022-10-10 5:50 ` Andrew Tropin
2022-10-02 13:12 ` [bug#57963] [PATCH v5 1/2] home: services: " Taiju HIGASHI
2022-10-02 13:20 ` Taiju HIGASHI
2022-10-02 13:15 ` Taiju HIGASHI
2022-10-02 13:15 ` [bug#57963] [PATCH v5 2/2] home: services: Support user's fontconfig configuration Taiju HIGASHI
2022-10-10 6:40 ` Andrew Tropin
2022-10-10 16:15 ` Liliana Marie Prikler
2022-10-12 6:05 ` Andrew Tropin
2022-10-11 3:54 ` Taiju HIGASHI
2022-10-11 4:21 ` Liliana Marie Prikler
2022-10-11 8:09 ` Taiju HIGASHI
2022-10-11 18:24 ` Liliana Marie Prikler
2022-10-12 3:59 ` Taiju HIGASHI
2022-10-12 4:21 ` Liliana Marie Prikler
2022-10-12 7:07 ` [bug#57963] Almost plain SXML serializer Andrew Tropin
2022-10-12 11:42 ` Taiju HIGASHI
2022-10-12 13:03 ` Andrew Tropin
2022-10-12 18:23 ` Liliana Marie Prikler
2022-10-13 3:51 ` Andrew Tropin
2022-10-12 6:43 ` [bug#57963] [PATCH v5 2/2] home: services: Support user's fontconfig configuration Andrew Tropin
2022-10-12 11:38 ` Taiju HIGASHI
2022-10-12 12:41 ` Andrew Tropin
2022-10-13 12:37 ` Ludovic Courtès
2022-10-14 5:06 ` Andrew Tropin
2022-10-15 11:13 ` Taiju HIGASHI
2022-10-17 16:28 ` Ludovic Courtès
2022-10-18 12:41 ` Taiju HIGASHI
2022-10-19 21:42 ` Taiju HIGASHI
2022-10-20 1:23 ` [bug#57963] [PATCH 0/1] Support user's fontconfig Declan Tsien
2022-10-20 1:37 ` Taiju HIGASHI
2022-10-20 2:03 ` Declan Tsien
2022-10-20 3:44 ` Taiju HIGASHI
2022-10-20 5:06 ` Declan Tsien
2022-10-21 1:02 ` Taiju HIGASHI
2022-10-27 4:00 ` [bug#57963] [PATCH v5 2/2] home: services: Support user's fontconfig configuration Taiju HIGASHI
2022-10-27 5:18 ` Liliana Marie Prikler
2022-10-27 5:31 ` Taiju HIGASHI
2022-10-27 6:36 ` Liliana Marie Prikler
2022-11-02 1:43 ` Taiju HIGASHI
2022-11-02 6:45 ` Liliana Marie Prikler
2022-11-04 8:46 ` Taiju HIGASHI
2022-11-04 16:29 ` ( via Guix-patches via
2022-11-06 13:24 ` Taiju HIGASHI
2022-10-20 5:40 ` Declan Tsien
2022-10-21 4:03 ` Taiju HIGASHI
2022-10-21 5:02 ` Declan Tsien
2022-10-21 8:01 ` Taiju HIGASHI
2022-10-21 9:15 ` Declan Tsien
2022-10-23 6:32 ` Taiju HIGASHI
2022-10-23 7:33 ` Declan Tsien
2022-10-23 11:40 ` Taiju HIGASHI
2022-10-07 5:20 ` [bug#57963] Next steps for this issue Taiju HIGASHI
2022-10-07 5:44 ` Taiju HIGASHI
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87y1u3ngds.fsf@taiju.info \
--to=higashi@taiju.info \
--cc=57963@debbugs.gnu.org \
--cc=andrew@trop.in \
--cc=liliana.prikler@gmail.com \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).