What one person considers sane isn't necessarily so.
*Assuming* sane defaults isn't really sensible.
Here are some examples, not directly related to the issue at hand:
* In a "sane" configuration, we'd expect a list of monospace fonts
when requesting the generic monospace font family. Similarly for
the generic serif and sans-serif families. However, the following
commands show that fonts of all three types are included in all of
the generic families.
Normally, it doesn't cause problems because fonts of the right
type are at the beginning of the list. However, if a specific font
is requested, an obviously incorrect substitution can be made
(eg, sans-serif font shown when serif was requested) because fonts
of all types are in all of the lists.
Maybe developers in the past thought it was fine because some
config further along could be assumed to have sane defaults?
Or maybe they thought it was just a theoretical problem that
wouldn't ever occur? But it's not just theoretical. I have
encountered real issues, which is why I know of it at all.
* Many people believe that if they request a font that isn't
installed, Ubuntu will substitute a font it "thinks" looks
similar. They don't realize that it has to be defined in the
config files.
So if they request a font that's not defined, like CourierStd,
Ubuntu will fallback to sans-serif, even though every human
immediately knows the Courier substitutions should be used –
and that would be the sane default. But here, we're explicitly
deciding *not* to, even knowing there is a theoretical risk of
problematic substitutions in the future.
The following config would be better than the one I proposed earlier:
<alias binding="same"> family> CourierStd< /family> family> Courier< /family>
<
<accept>
<
</accept>
</alias>
<alias> family> CourierStd< /family> default> <family> monospace< /family> </default>
<
<
</alias>
I submitted a request to fontconfig:
https:/ /gitlab. freedesktop. org/fontconfig/ fontconfig/ -/issues/ 262
-----
What one person considers sane isn't necessarily so.
*Assuming* sane defaults isn't really sensible.
Here are some examples, not directly related to the issue at hand:
* In a "sane" configuration, we'd expect a list of monospace fonts
when requesting the generic monospace font family. Similarly for
the generic serif and sans-serif families. However, the following
commands show that fonts of all three types are included in all of
the generic families.
fc-match -s monospace
fc-match -s sans-serif
fc-match -s serif
Normally, it doesn't cause problems because fonts of the right
type are at the beginning of the list. However, if a specific font
is requested, an obviously incorrect substitution can be made
(eg, sans-serif font shown when serif was requested) because fonts
of all types are in all of the lists.
Maybe developers in the past thought it was fine because some
config further along could be assumed to have sane defaults?
Or maybe they thought it was just a theoretical problem that
wouldn't ever occur? But it's not just theoretical. I have
encountered real issues, which is why I know of it at all.
* Many people believe that if they request a font that isn't
installed, Ubuntu will substitute a font it "thinks" looks
similar. They don't realize that it has to be defined in the
config files.
So if they request a font that's not defined, like CourierStd,
Ubuntu will fallback to sans-serif, even though every human
immediately knows the Courier substitutions should be used –
and that would be the sane default. But here, we're explicitly
deciding *not* to, even knowing there is a theoretical risk of
problematic substitutions in the future.