blobmoji icon indicating copy to clipboard operation
blobmoji copied to clipboard

Conflicts with other fonts on Linux

Open igalic opened this issue 7 years ago • 4 comments

despite all the right configuration, there still appear to be a few glyphs missing

screenshot_20180815_213520

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.

igalic avatar Aug 15 '18 19:08 igalic

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...

C1710 avatar Aug 15 '18 19:08 C1710

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"

igalic avatar Aug 15 '18 20:08 igalic

I'll collect all the issues on font support in Linux here: #26 #41 #29

C1710 avatar Jul 12 '21 19:07 C1710

Problem Fonts

@igalic In my experience these issues are caused by one of the following:

  1. DejaVu
  2. Symbola
  3. 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 🙂.) image

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. image

Snuggle avatar Apr 18 '22 21:04 Snuggle