[ First posted at the ubuntu-devel mailing list, but discourse it probably more suitable for this topic. ]
Hi all,
I would like to make an overhaul of the selection of fonts we ship by default in the Ubuntu desktop. In short I would like to:
-
Install the
fonts-noto-core
package by defaultThat package includes sans-serif and serif fonts covering latin as well as a large number of non-latin scripts.
-
Keep installing the
fonts-noto-cjk
package by defaultTo cover Chinese, Japanese and Korean.
-
Drop quite a few font packages for non-latin scripts from the seed
Simply because those scripts would be covered by
fonts-noto-core
, which typically offers fonts of better quality than the non-latin fonts from various sources we currently include by default. -
Keep
DejaVu Sans Mono
as the default monospace font for most scripts for nowThe quality of the DejaVu monospace fonts seems to be generally good. No urgent need to change it for monospace.
(Please note that Iâm not suggesting that we would replace the Ubuntu font in the desktop environment. Iâm talking about the default font picked by fontconfig in other contexts, not least web browsing.)
What would the point with this be?
Currently the DejaVu fonts are default for most scripts. Glyphs for a large number of scripts are bundled into the same DejaVu font file. Example:
$ fc-query /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf | grep -E '\blang' | sed 's/[|]/ /g'
lang: aa ab af ar ast av ay az-az az-ir ba bm be bg bi bin br bs bua ca ce ch chm co cs cu cv cy da de el en eo es et eu fa fi fj fo fr ff fur fy ga gd gl gn gv ha haw he ho hr hu hy ia ig id ie ik io is it iu ka kaa ki kk kl ku-am ku-ir kum kv kw ky la lb lez ln lo lt lv mg mh mi mk mo mt nb nds nl nn no nr nso ny oc om os pl pt rm ro ru sah sco se sel sh shs sk sl sm sma smj smn sms so sq sr ss st sv sw tg tk tl tn to tr ts tt tw tyv ug uk uz ve vi vo vot wa wen wo xh yap yi yo zu ak an ber-dz ber-ma crh csb ee fat fil hsb ht hz jv kab kj kr ku-iq ku-tr kwm lg li mn-mn ms na ng nv ota pap-an pap-aw qu quz rn rw sc sd sg sn su ty za(s)
While you can argue that this is convenient, it makes it cumbersome to replace the default font for a particular script with some better default font. /usr/share/fontconfig/conf.avail/56-language-selector-ar.conf
is a convoluted way to do that for Arabic, but that works only under an Arabic locale. And many Arabic speaking users prefer to use English as display language.
Changing the default font for sans-serif and serif to Noto for most scripts would improve the situation in two ways:
-
Typically it would improve the font quality for non-latin scripts. As regards latin I think the quality of the Noto font is well as good as DejaVu.
-
To the extent we would want to provide non-Noto default fonts for a few scripts, it would be easy to change the font configuration accordingly, and we wouldnât need to restrict it to certain locales.
Itâs worth mentioning that e.g. Fedora and some of our own flavors already use Noto fonts by default. Debian does so too if you install e.g. the GNOME desktop on Debian, since fonts-noto-core is pulled in that case and fontconfig upstream prefers Noto nowadays.
User complaints about too many fonts
There is a discourse topic where some users complain about the large number of fonts currently installed by default. Would this change make those users happy? Iâd say âyesâ and ânoâ.
I can understand that users who create advanced documents and often need to switch between only a few fonts donât like the idea with fonts covering a lot of scripts around the world. Apparently the tools for selecting fonts typically show the whole list of installed fonts. So would the proposed change reduce the total number of fonts installed by default? Probably not. I think there would be more of them.
But the good news is that the proposed change would make it much easier for such users to uninstall one or two font packages:
sudo apt purge fonts-noto-core
(Iâm assuming that the ubuntu-desktop
package would only recommend fonts-noto-core
, not depend on it.)
That would leave a significantly smaller number of fonts, where DejaVu would return as the default font for most scripts, and make life easier for advanced content creators.
So how to go about this?
Iâm seeking a green light for starting the changes described above in mantic.
As regards the font configuration, the snaps do (or will soon do) that separately, and do not parse the system hostâs /etc/fonts/conf.d
. So we would need to start with the system, and once there is a decent set of fonts including related font configuration, we would need to copy that into the snaps later.
Looking forward to your response on the proposed changes.