(In reply to Petr Gajdos from comment #8) > Apologize, I just do not understand why a program do not use a font returned > by `fc-match emoji`. Removing a font from a preference lists for > monospace/sans/sans-serif feels more like a workaround to me, but I am > probably missing something. The result of `fc-match emoji` is correct. But it seems not working in any actual applications. Applications still got DejaVu Sans, rather than emoji fonts. I looked deeper into all system fontconfig files and found that DejaVu fonts have a super high priority: https://gitlab.freedesktop.org/fontconfig/fontconfig/blob/master/conf.d/60-latin.conf#L26 I deleted this line manually and everything works well. It seems fontconfig will first look at latin fonts, and then look for emoji if nothing provide the font. But if some latin fonts have provided it, then it use the latin font to render the emoji. I don't know why fontconfig ships a default font list like this. It is out-dated and doesn't match openSUSE's configuration there https://github.com/openSUSE/fonts-config We already have a font family matching configuration, which is very nicely designed for modern desktop. So we don't need to do anything with dejavu-fonts package. We just need to disable the 60-latin.conf configuration by removing symlink.