Non‑Latin Fonts not Rendering on Linux
2 min read
•This is more of a note for the future me. For a while, any non‑Latin fonts were not rendering on my ArchLinux install. Here's how I fixed it!
The Issue
Well, the issue is simple: any non‑Latin text such as 日本語 was rendering using a default and very unreadable font even though I installed compatible fonts.
❯ sudo pacman -S noto-fonts-cjk
warning: noto-fonts-cjk-20240730-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...
Packages (1) noto-fonts-cjk-20240730-1
Total Installed Size: 298,79 MiB
Net Upgrade Size: 0,00 MiB
:: Proceed with installation? [Y/n]
# logs omitted
Fontconfig error: failed reading config file: /etc/fonts/conf.d: (errno 21)
Fontconfig error: failed reading config file: /usr/share/fontconfig/conf.avail: (errno 21)
When reinstalling the font, I noticed two errors, so I started looking around on how to fix this. That's when I found a bug report on the ArchLinux bug tracker.
Resolving the Issue
Checking the directory with stat
revealed that its access time was set in the future for some reason—how could that be? I'm not a time traveler, after all!
❯ stat /etc/fonts/conf.d
File: /etc/fonts/conf.d
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 253,0 Inode: 12846209 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2044-01-09 10:29:38.946741909 +0100
So yeah, the fix is super simple: all I needed to do was touch
the directory and the file:
❯ sudo touch /etc/fonts/conf.d
❯ sudo touch /usr/share/fontconfig/conf.avail
Look, now it is fixed!
❯ stat /etc/fonts/conf.d
File: /etc/fonts/conf.d
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 253,0 Inode: 12846209 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2025-10-20 18:46:12.480586532 +0200
Well, for now at least; I guess in 2038 all fonts will stop working…
As an additional step, you could also clear the font cache with:
❯ sudo fc-cache -f -v