From: Taiju HIGASHI <higashi@taiju.info>
To: Liliana Marie Prikler <liliana.prikler@gmail.com>
Cc: "Ludovic Courtès" <ludo@gnu.org>,
57963@debbugs.gnu.org, "Andrew Tropin" <andrew@trop.in>
Subject: [bug#57963] [PATCH 0/1] Support user's fontconfig.
Date: Mon, 26 Sep 2022 10:43:40 +0900 [thread overview]
Message-ID: <87zgemrjub.fsf@taiju.info> (raw)
In-Reply-To: <bfa2b7d3fccafadfe6c436c850cb29ddaf46f313.camel@gmail.com> (Liliana Marie Prikler's message of "Sun, 25 Sep 2022 17:50:00 +0200")
Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
> Am Sonntag, dem 25.09.2022 um 16:29 +0900 schrieb Taiju HIGASHI:
>> Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
>>
>> > Am Sonntag, dem 25.09.2022 um 07:58 +0900 schrieb Taiju HIGASHI:
>> > > Ludovic Courtès <ludo@gnu.org> writes:
>> > >
>> > > > Anyway, it does look like your v2 is the way to go, with the
>> > > > obvious caveat that using it is tricky: one needs to know about
>> > > > fontconfig’s config file format and about sxml.
>> > > >
>> > > > Maybe we can go with v2 for now (it provides a useful “escape
>> > > > hatch”) but prepare for more conventional configuration
>> > > > bindings?
>> > >
>> > > By conventional configuration binding, do you mean adding
>> > > something
>> > > like home-fontconfig-configuration to provide a dedicated
>> > > fontconfig
>> > > configuration?
>> > I think Ludo means that we should provide the most useful options
>> > (like the fontconfig dirs) as dedicated record fields, while
>> > leaving an "extra-config" escape hatch, that can be used with SXML
>> > or a raw string for stuff that's too complicated (my personal
>> > preference would still be SXML over the raw string, but YMMV).
>>
>> I see. For example,
>>
>> For example, would it be as follows?
>>
>> --8<---------------cut here---------------start------------->8---
>> (service home-fontconfig-service-type
>> (home-fontconfig-configuration
>> (dir "~/.config/fontconfig/my-fonts1.conf"))
>> (extra-config
>> (list
>> "<dir>~/.config/fontconfig/my-fonts2.conf")))
>> --8<---------------cut here---------------end--------------->8---
> Since you can specify more than one dir, that'd be "dirs" or even
> something more helpful like "font-directories". Note that those are
> directories and not config files.
>
> You corrected the extra-config thing in your reply, but also be aware
> of the extra-config as SXML option.
>
>>
>> > > I have been reading the DTD and think it might be a bit of a
>> > > challenge.
>> > > https://github.com/freedesktop/fontconfig/blob/e291fda7d42e5d64379555097a066d9c2c4efce3/fonts.dtd
>> > >
>> > > However, I did notice one thing, and that is that there is an
>> > > include element. I thought that if we had a configuration where
>> > > the include element could be added, we could handle most of the
>> > > use cases. What do you think of this idea?
>> > I'd prefer extra-config over include – extra-config doesn't need to
>> > go through file-like objects and an additional layer of G-
>> > Expression quoting.
>> >
>> > Cheers
>>
>> It is difficult to determine which rules to define as records, but I
>> thought that if I only had includes, I could handle most use cases.
> Go for the obvious low-hanging fruits and typical use cases first.
> Don't just add a field that requires a depth of 3 or more to be useful.
>
>> For example, we assume that you will be able to write settings as
>> follows:
>>
>> --8<---------------cut here---------------start------------->8---
>> (service home-fontconfig-service-type
>> (home-fontconfig-configuration
>> (includes
>> (list
>> (include
>> (path "~/.config/fontconfig/my-fonts1.conf")
>> (ignore-missing #t))))))
>> --8<---------------cut here---------------end--------------->8---
>>
>> ref:
>> https://github.com/freedesktop/fontconfig/blob/e291fda7d42e5d64379555097a066d9c2c4efce3/fonts.dtd#L59-L74
>>
>> Would it also fit with your assumption if we could also specify
>> extra-config here?
>>
>> It is difficult to judge whether the ability to specify includes is
>> useful or not, though, since extra-config alone will do the job.
> Except for possibly some fringe use cases, include will be pointless if
> you have extra-config, which is a better include :)
>
> Cheers
I have designed a configuration interface with a typical font
configuration pattern. (it implemented yet.)
--8<---------------cut here---------------start------------->8---
(service home-fontconfig-service-type
(home-fontconfig-configuration
(font-directories
(list "~/fonts"))
(prefered-default-font
(sans-serif "Noto Sans CJK JP")
(serif "Noto Serif CJK JP")
(monospace "PlemolJP Console"))
(extra-config ; Also accepts lists of XML strings.
`((match (@ (target font))
(edit (@ (mode assign)
(name antialias))
(bool true)))))))
--8<---------------cut here---------------end--------------->8---
This is assumed to be serialized below. (actually, it not pretty-printed.)
--8<---------------cut here---------------start------------->8---
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>~/.guix-home/profile/share/fonts</dir>
<dir>~/fonts</dir>
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans CJK JP</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif CJK JP</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>PlemolJP Console</family>
</prefer>
</alias>
<match target="font">
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
</match>
</fontconfig>
--8<---------------cut here---------------end--------------->8---
How about this?
--
Cheers
Taiju
next prev parent reply other threads:[~2022-09-26 1:44 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 [this message]
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
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=87zgemrjub.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).