blobmoji
blobmoji copied to clipboard
Conflicts with other fonts on Linux
despite all the right configuration, there still appear to be a few glyphs missing

n.b.: i have DejaVu uninstalled, so i'm fairly certain it's not coming from there!
Could this be from Bitstream Vera?
if so, i have more work to do on my fontconfig, and uninstalling DejaVu was just a very inadequate workaround.
Actually, I don't know, but these "primitive" symbols can be provided by many fonts, so I think the best solution would be to somehow alter the fonts priority or simply live with these things. At least for Fedora there's this font manager (not the viewer) that provides character tables. My solution was to go to the unicode character and disable all fonts that were able to display it. Anyhow there's probably some better solution for this stuff...
This is my current font-config: (~/.config/fontconfig/conf.d/01-color-emoji.conf)
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="scan">
<test name="family">
<string>Noto Color Emoji</string>
</test>
<edit name="scalable" mode="assign">
<bool>true</bool>
</edit>
<edit name="pixelsize" mode="assign">
<double>18</double>
</edit>
</match>
<match>
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend" binding="weak">
<string>Noto Color Emoji</string>
</edit>
</match>
<match>
<test name="family"><string>serif</string></test>
<edit name="family" mode="prepend" binding="weak">
<string>Noto Color Emoji</string>
</edit>
</match>
<match>
<test name="family"><string>Apple Color Emoji</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Color Emoji</string>
</edit>
</match>
<!-- Add emoji generic family -->
<alias binding="strong">
<family>emoji</family>
<default><family>Noto Color Emoji</family></default>
</alias>
<!-- Alias requests for the other emoji fonts -->
<alias binding="strong">
<family>Apple Color Emoji</family>
<prefer><family>Noto Color Emoji</family></prefer>
<default><family>sans-serif</family></default>
</alias>
<alias binding="strong">
<family>Segoe UI Emoji</family>
<prefer><family>Noto Color Emoji</family></prefer>
<default><family>sans-serif</family></default>
</alias>
<alias binding="strong">
<family>EmojiOne Color</family>
<prefer><family>Noto Color Emoji</family></prefer>
<default><family>sans-serif</family></default>
</alias>
<alias binding="strong">
<family>EmojiOne Color</family>
<prefer><family>Noto Color Emoji</family></prefer>
<default><family>sans-serif</family></default>
</alias>
</fontconfig>
and, while it is loaded after the generic rules, but in theory that shouldn't matter, cuz they issue a "prepend"
FC_DEBUG=1024
Loading config file from /etc/fonts/fonts.conf
Scanning config dir /etc/fonts/conf.d
Loading config file from /etc/fonts/conf.d/10-antialias.conf
Loading config file from /etc/fonts/conf.d/10-hinting-slight.conf
Loading config file from /etc/fonts/conf.d/10-scale-bitmap-fonts.conf
Loading config file from /etc/fonts/conf.d/10-sub-pixel-rgb.conf
Loading config file from /etc/fonts/conf.d/11-lcdfilter-default.conf
Loading config file from /etc/fonts/conf.d/20-unhint-small-vera.conf
Loading config file from /etc/fonts/conf.d/30-cjk-aliases.conf
Loading config file from /etc/fonts/conf.d/30-metric-aliases.conf
Loading config file from /etc/fonts/conf.d/40-nonlatin.conf
Loading config file from /etc/fonts/conf.d/45-generic.conf
Loading config file from /etc/fonts/conf.d/45-latin.conf
Loading config file from /etc/fonts/conf.d/49-sansserif.conf
Loading config file from /etc/fonts/conf.d/50-user.conf
Scanning config dir /home/igalic/.config/fontconfig/conf.d
Loading config file from /home/igalic/.config/fontconfig/conf.d/01-color-emoji.conf
Loading config file from /etc/fonts/conf.d/51-local.conf
Loading config file from /etc/fonts/conf.d/60-generic.conf
Loading config file from /etc/fonts/conf.d/60-latin.conf
Loading config file from /etc/fonts/conf.d/64-language-selector-prefer.conf
Loading config file from /etc/fonts/conf.d/65-fonts-persian.conf
Loading config file from /etc/fonts/conf.d/65-fonts-texgyre.conf
Loading config file from /etc/fonts/conf.d/65-nonlatin.conf
Loading config file from /etc/fonts/conf.d/69-language-selector-ja.conf
Loading config file from /etc/fonts/conf.d/69-language-selector-zh-cn.conf
Loading config file from /etc/fonts/conf.d/69-language-selector-zh-hk.conf
Loading config file from /etc/fonts/conf.d/69-language-selector-zh-mo.conf
Loading config file from /etc/fonts/conf.d/69-language-selector-zh-sg.conf
Loading config file from /etc/fonts/conf.d/69-language-selector-zh-tw.conf
Loading config file from /etc/fonts/conf.d/69-unifont.conf
Loading config file from /etc/fonts/conf.d/70-fonts-noto-cjk.conf
Loading config file from /etc/fonts/conf.d/70-no-bitmaps.conf
Loading config file from /etc/fonts/conf.d/80-delicious.conf
Loading config file from /etc/fonts/conf.d/90-synthetic.conf
Loading config file from /etc/fonts/conf.d/99-language-selector-zh.conf
Vera.ttf: "Bitstream Vera Sans" "Roman"
I'll collect all the issues on font support in Linux here: #26 #41 #29
Problem Fonts
@igalic In my experience these issues are caused by one of the following:
- DejaVu
- Symbola
- Unifont
In your case, you have Unifont installed (Loading config file from /etc/fonts/conf.d/69-unifont.conf) which provides a bitmap glyph for every single Unicode character, from what I remember. Try uninstalling that, restarting and see if your issue is fixed? 😊
Further Debugging
For further debugging, please install GNOME Character Map (often packaged as gucharmap). If you then right-click on a broken emoji, it should tell you which font that emoji is currently being sourced from in your current font config.
Search for Emoji
(In top menu, Search > Find and then type in an emoji. For this example I am using 🙂.)

Right click Emoji to View Font Used
As you can see in the image below, this emoji is currently being provided by a font called Blobmoji. If instead, yours says ABC Font, then you likely need to uninstall that other font.
