Subject: bug#58912: 29.0.50; set-face-attribute call in init.el has no lasting effect

From: Eli Zaretskii <[email-masked]>
Date: Sat, 05 Nov 2022 21:03:31 +0200

> From: Matt Armstrong <[email-masked]>
> Cc: [email-masked], [email-masked], [email-masked]
> Date: Sat, 05 Nov 2022 11:50:54 -0700
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > In case there's any doubt, we don't want this kind of solutions to be
> > the fix for such problems.  early-init.el should be used for a very
> > small number of customizations that must take place early on.  This
> > one is not one of them.
> >
> > Thanks for the other data you collected.
> 
> It might be a clue to the bug.

Of course, and that's why this information is valuable.  My point is
that it cannot be a solution to have users customize the default face
in early-init.el.

> Namely, when the 'default face's family
> is set in init.el I see this in the
> dynamic-setting-handle-config-changed-event ->
> font-setting-change-default-font calls:
> 
> 3 -> (font-get #<font-object "-SAJA-Cascadia Mono-semilight-normal-normal-*-15-*-*-*-m-0-iso10646-1"> :user-spec)
> 3 <- font-get: "IBM Plex Mono 11"
> 
> When set in early-init.el I see something like this:
> 
> 3 -> (font-get #<font-object "-SAJA-Cascadia Mono-semilight-normal-normal-*-15-*-*-*-m-0-iso10646-1"> :user-spec)
> 3 <- font-get: "Cascadia Mono 11"
> 
> I don't know what a font-object's :user-spec property is

See font.c, where this property is put on the font object.

> or why it is apparently wrong in the first case.

That's the important question to answer, yes.