My system is Arch Linux with KDE desktop environment. I have come to an understanding that there are two different set of fonts in my system. One set is for the virtual console without 'X Window System', and another set is for my KDE desktop environment. Archi Wiki suggests that Fontconfig is the library that tell the applications the available fonts and how to render them (such as anti-aliasing). Another set of font is stored in /usr/share/kdb/consolefonts, and is exclusively for the virtual console's font rendering. Since virtual console's number of glyphs are limited, I cannot render CJK fonts. However, for applications using the X Window System, more specifically, the virtual console Konsole, an alternative to X-term, allows me to render CJK fonts as it relies on fontconfig to render the fonts. My question is I set my font to Noto Mono in Konsole, but it still seems to be rendering CJK fonts just fine. I checked google and confirmed that Noto Mono does not contain any CJK glyphs, so how is this possible?So I have basically asked two questions. 1. Is my understanding about there being two different set of fonts, one for the original console and another for applications using X11, true? 2. How is it possible that Konsole is displaying CJK characters even without the configured font containing any CJK glyphs?
How does font work on Arch Linux?
console;fonts;fontconfig
Yes, you're correct. The virtual console uses the built-in font. You can use the command showconsolefont to see a table of glyphs for the current font. You'd have to be on a VGA console to use the command as regular user (Ctrl+Alt+F2 ...) Fontconfig has a fallback order to use a font that supports the characters that need to be displayed. So if Noto Mono doesn't support the characters then it will use another installed font to display them.