46

I've upgraded from 17.10 to 18.04 and was hoping to have better emoji support. The results are that Chrome (66) is still using the old black and white emoji font, and Firefox (59) is managing to show some color emoji but not others. I took some advice to install the font EmojiOne but that didn't seem to help 😓

Screenshots from the emoji demo page at http://eosrei.github.io/emojione-color-font/full-demo.html :

Chrome: enter image description here

Firefox: enter image description here

20

On Ubuntu 18.04+ you can now simply install a single package: fonts-noto-color-emoji. After that, restart Chrome and it will take effect. No need for creating a manual font configuration.

This package is supposed to be installed on the regular Ubuntu 18.04+ desktop flavor (on a 'Recommended' level of dependency - check for yourself with apt rdepends fonts-noto-color-emoji). Some other flavors like Kubuntu (KDE) don't have this by default and require you to install it manually.

|improve this answer|||||
  • 10
    This didn't work for me. I'm using Ubuntu 18.04 with Chrome v71 from Google's official repository. The other answer did do the trick. – undercat applauds Monica Dec 18 '18 at 11:33
  • 1
    @undercatapplaudsMonica there are multiple other answers now. – kynan Jan 30 at 7:40
  • Which other answer? – Sérgio Mafra Mar 11 at 16:45
48

For anyone else having the problem, uninstalling and re-installing the font pack worked for me (Ubuntu 19.10)

$ sudo apt remove fonts-noto-color-emoji
$ sudo apt install fonts-noto-color-emoji

or just

$ sudo apt reinstall fonts-noto-color-emoji

Then restart Chrome.

Edit:

The problems comesback sometimes when Chrome gets an update, and then I have to re-install the font.

IDK if it helps but maybe copying the font into /usr/local/share/fonts will solve this for future updates:

sudo cp -r /usr/share/fonts/truetype/noto /usr/local/share/fonts/truetype/noto
|improve this answer|||||
  • 3
    works for ubuntu 19.04 as well, thanks :) – Mark Dec 18 '19 at 18:27
  • 2
    thx guy! have to do this another time after a while. Don't know why this font package get "corrupted"... – Seboudry Dec 23 '19 at 10:10
  • 6
    This solution does not work after Restart. – Akshar Patel Dec 29 '19 at 7:45
  • 3
    when you restart the problem comes back again :( – Victor Jan 9 at 10:35
  • 1
    Well, it worked for me. Now, it'd be rather interesting to know why... – Mark Amery Jan 10 at 12:11
40

I fixed it - I had to follow these instructions from 2016 😧 I had to create ~/.config/fontconfig/conf.d/01-emoji.conf with the following text:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>serif</family>
    <prefer>
      <family>Noto Color Emoji</family>
    </prefer>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>Noto Color Emoji</family>
    </prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>Noto Color Emoji</family>
    </prefer>
  </alias>
</fontconfig>

The bit in the original instructions about installing Noto font was unnecessary since it's installed as part of 18.04 by default.

Then run:

fc-cache -f -v

On the next restart, Chrome has color emoji.

|improve this answer|||||
  • -1, because of two reasons: 1) the local fontconfig isn't required any longer in 18.04. 2) "installing Noto font was unnecessary since it's installed as part of 18.04 by default" isn't universally true. I have a full KDE desktop installation and it wasn't installed at all. See also my answer. – gertvdijk Jul 25 '18 at 15:00
  • 2
    Do you know if that's all true for upgradees too? I sensed that my problems might have had to do with being a 17.10 upgrade. – N3dst4 Jul 25 '18 at 15:08
  • 2
    I'm using Kubuntu 18.04 and after installing The Noto Fonts I still had the same problem. However, this did the trick for me. Unfortunately, I'm not sure if it was the config file or simply the call to "fc-cache" which caused the change. Maybe both were needed. – andypotter Oct 24 '18 at 16:54
  • This fixed emoji in Chrome but unfortunately broke them in Anki. 😞 Ultimately I had to revert it altogether to avoid the side effects. – undercat applauds Monica Dec 21 '18 at 10:14
  • This did not have any effect on Pop_OS 19.10. – Matthias Jan 31 at 6:55
2

Don't use that demo page to test color emoji. That page only demonstrates the EmojiOne font which isn't installed by default in Ubuntu (although Firefox uses a variation of it).

Instead use https://unicode.org/emoji/charts/full-emoji-list.html

Look at the Browser column. In default Ubuntu, it should mostly match the Google column. (Except for the Browser column, all the other columns are just .png icons). When I tested today, the Google column is just a bit out of date as Google has made some changes to some of their emoji that haven't been incorporated into the website. (For instance, the hamburger has cheese on top of the burger.)

|improve this answer|||||
  • Fair enough, but this is not an answer to the original question - how to enable color emojis in Chrome. – gertvdijk Jul 25 '18 at 14:58
  • @gertvdijk Color emoji does work in Google Chrome. What specific web site is causing you a problem? – Jeremy Bicha Jul 26 '18 at 15:04
  • Ok, I see that you fixed your issue by installing fonts-noto-color-emoji. I tried to get every Ubuntu 18.04 LTS flavor to include that package by default, but the Lubuntu and Kubuntu developers didn't want it. – Jeremy Bicha Jul 26 '18 at 15:05
  • @Jeremy_Bicha Yeah, on Kubuntu. But, my point was, your 'answer' is more of a comment to the other answer about the test page to use. It doesn't really answer the Q/OP. – gertvdijk Jul 26 '18 at 21:23
  • 1
    Your link is misleading because it has a font-family CSS rule for the "Browser" column that includes specific fonts like "Noto Color Emoji". The majority of websites are not going to have that CSS rule. So for me emoji renders fine on your link with the fonts-noto-color-emoji package installed, until I disable that CSS rule then they don't. If I copy+paste some emoji from your link to gedit or a terminal window, some render fine and some don't (e.g. U+2603 ☃ doesn't work while U+26C4 ⛄ does). – Abe Voelker Sep 2 '18 at 2:36
2

It seems this problem can be caused by having multiple incompatible emoji fonts installed, and/or having wrong default font selected in Chrome.

  1. Make sure you have fonts-noto-color-emoji package installed.

    sudo apt install fonts-noto-color-emoji
    
  2. Create/Edit font config files as in @N3dst4's answer.

    • Note: While @N3dst4 put his config file in ~/.config/fontconfig/conf.d/01-emoji.conf, I put my in ~/.config/font-manager/local.conf because of how my system is set up.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <fontconfig>
      <alias>
        <family>serif</family>
        <prefer>
          <family>Noto Color Emoji</family>
        </prefer>
      </alias>
      <alias>
        <family>sans-serif</family>
        <prefer>
          <family>Noto Color Emoji</family>
        </prefer>
      </alias>
      <alias>
        <family>monospace</family>
        <prefer>
          <family>Noto Color Emoji</family>
        </prefer>
      </alias>
    </fontconfig>
    
  3. Set default fonts in Chrome to variations of "Noto".

  4. Rebuild font cache + restart chrome.

    fc-cache -f -v
    
  5. If emojis are still not displayed correctly see what fonts are used to render them with right click on emoji -> Inspect -> Computed -> Rendered Fonts and uninstall them.

    • Example: My emojis were rendered by font Twitter Color Emoji, so I needed to uninstall package fonts-twemoji-svginot.
    • You might not need to uninstall fonts if you play more with font config files, but I have not tested that.
    • Don't forget to rebuild font cache + restart chrome after uninstalling fonts.

BTW this also fixed Zalgo text for me.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.