Substitute Sans For Mono
This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.
Summary
Currently monospace fonts are implicitly substituted with sans-serif fonts by default configuration file in fontconfig if missing. However, this is unpredictable behavior and it just happened to work. this behavior might be changed once one install other font packages. This Change aims to make it predictable and assign a tentative default monospace font for languages which is missing them.
Owner
- Name: Akira TAGOH
- Email: tagoh AT redhat DOT com
Detailed Description
We have the following langugages which donât have a dedicated default monospace font:
- Amharic
- Arabic
- Assamese
- Bangla
- Burmese
- Georgian
- Gujarati
- Hebrew
- Hindi
- Kannada
- Khmer
- Malayalam
- Marathi
- Odia
- Persian
- Punjabi
- Sinhala
- Tamil
- Telugu
- Thai
- Urdu
They are what we currently have a translation for anaconda and that implies that we might have more.
The font selection behavior of monospace for those languages might be changed when other font packages for them is installed. That isnât a good experience. We have never ever added substitution config for monospace to such sans-serif font packages because they are NOT a monospace font. Thatâs true but the actual behavior isnât like it. fontconfig tries to substitute a font to avoid a missing font situation.
So this Change donât change anything in most cases. this just make sure we have same behavior with default fontsets no matter what extra font packages is installed. We can drop it once we have a dedicated monospace font package for them.
Feedback
Benefit to Fedora
This Change provides consistent behavior to users for monospace font selection.
Scope
-
Proposal owners:
- Add substitution config for monospace to the following font packages:
- google-noto-sans-arabic-vf-fonts
- google-noto-sans-bengali-vf-fonts
- google-noto-sans-devanagari-vf-fonts
- google-noto-sans-ethiopic-vf-fonts
- google-noto-sans-georgian-vf-fonts
- google-noto-sans-gujarati-vf-fonts
- google-noto-sans-hebrew-vf-fonts
- google-noto-sans-kannada-vf-fonts
- google-noto-sans-khmer-vf-fonts
- google-noto-sans-oriya-vf-fonts
- google-noto-sans-sinhala-vf-fonts
- google-noto-sans-tamil-vf-fonts
- google-noto-sans-telugu-vf-fonts
- google-noto-sans-thai-vf-fonts
- paktype-naskh-basic-fonts
- rit-meera-new-fonts
- sil-padauk-fonts
- vazirmatn-vf-fonts
- Add substitution config for monospace to the following font packages:
-
Other developers: N/A
-
Release engineering: #Releng issue number
-
Policies and guidelines: N/A (not needed for this Change)
-
Trademark approval: N/A (not needed for this Change)
-
Alignment with the Fedora Strategy: N/A
Upgrade/compatibility impact
The default monospace font might be changed for those who rely on this unpredictable behavior. To get this back, they will need to write their own extra fontconfig configuration file to override the default monospace font such as:
monospace langcode-such-as-en family-name-you-prefer
Or use fonts-tweak-tool
to change the default monospace font for a certain language.
Early Testing (Optional)
Do you require âQA Blueprintâ support? N
How To Test
To make sure this Change donât affect our default fontsets, we are tracking the default font changes at Font Status page | font-status . the difference will be visible there if something is changed. For extra font packages, describing all the patterns here may be difficult though, you could try installing langpacks-fonts-ll_cc and then:
$ sudo dnf install fontquery $ fontquery-diff --loose-comparison 43
Assuming that you are running on Fedora 43 with some extra font packages that pulled in by langpacks. the above command will show you difference between default fontsets and your local machine.
User Experience
This Change donât affect most users who just use default fontsets or experts who use a custom font with proper substitution config to change their default monospace font. this may affects an user who use this unpredictable behavior to change the default monospace font, particularly without having a substitution config explicitly.
Dependencies
No
Contingency Plan
No contingency plans for this Change because this wonât change anything compared to current expected behavior with minimal defult fontsets. We simply need to fix something in extra font packages which affect our default fontsets.
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
Documentation
N/A (not a System Wide Change)
Release Notes
Last edited by @amoloney 2025-06-07T13:45:59Z
Last edited by @amoloney 2025-06-07T13:45:59Z