Skip to content

Instantly share code, notes, and snippets.

@himalay
Created February 26, 2017 06:31
Show Gist options
  • Star 18 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save himalay/5c404a5f6653cb35154ceb3a6c606211 to your computer and use it in GitHub Desktop.
Save himalay/5c404a5f6653cb35154ceb3a6c606211 to your computer and use it in GitHub Desktop.
Color emoji on Arch Linux.
# create folders if does not exist
mkdir -p ~/.fonts
mkdir -p ~/.config/fontconfig/
# download noto color emoji font from https://www.google.com/get/noto/#emoji-zsye-color
# extract NotoColorEmoji.ttf file into ~/.fonts/
# create font config file
cat << 'EOF' > ~/.config/fontconfig/fonts.conf
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<match>
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Color Emoji</string>
</edit>
</match>
<match>
<test name="family"><string>serif</string></test>
<edit name="family" mode="prepend" binding="strong">
<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>
EOF
# build font information cache files
fc-cache -f -v
@forabi
Copy link

forabi commented Sep 3, 2017

This actually breaks the numbers in all GTK and Qt apps. It might be due to the updated Noto Color Emoji font. Can this be fixed?

@gjvnq
Copy link

gjvnq commented Sep 20, 2017

I just removed all the mode="prepend" binding="strong" and it worked. No weired bugs with numbers.

@jcpsantiago
Copy link

Fixed color emojis, but removed spaces between words.

@briancaffey
Copy link

I tried running the script and had issues with spaces and numbers, then removed mode="prepend" binding="strong" and ran fc-cache -f -v as @gjvnq recommended and still had issues with spaces taht @jcpsantiago mentioned. I then removed the all of the contents from ~/.config/fontconfig/fonts.conf and ran fc-cache -f -v again. After rebooting I now get Emoji One emoji with no number/spacing issues in GTK/Qt applications. Thanks for the script and helpful commnts! I don't know if it is possible, but it would also be interesting to display these Emoji One fonts in urxvt. The fonts seem to work just fine in gnome-terminal but some are displayed as boxes in urxvt.

@hbarcelos
Copy link

Fontconfig error: "/home/henrique/.config/fontconfig/fonts.conf", line 8: junk after document element

I'm getting this error running fc-cache... Anybody knows why?

@hsjoberg
Copy link

hsjoberg commented May 2, 2018

@hbarcelos try adding a <fontconfig>-root tag for all <match>-tags, that worked for me.

@carbolymer
Copy link

does not work - it enforces Noto Color Emoji in the whole OS, which basically breaks fonts.

@gusbemacbe
Copy link

@carbolymer

It is outdated. I prepared updated and compatible file. Here is:

https://gist.github.com/gusbemacbe/393613ac23ec19f39dc963b40fb8a704

@pujianto
Copy link

pujianto commented Oct 8, 2020

➜ cat /etc/fonts/conf.d/99-noto-mono-color-emoji.conf 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match>
    <test name="family"><string>monospace</string></test>
    <edit name="family" mode="append_last" binding="strong">
      <string>Noto Color Emoji</string>
    </edit>
  </match>
</fontconfig>

then restart. It works for me

@smac89
Copy link

smac89 commented Oct 16, 2020

I just followed this suggestion here

In my ~/.config/fontconfig/fonts.conf, I just have this somewhere near the bottom:

<match>
   <edit name="family" mode="append_last" binding="same">
      <string>Noto Color Emoji</string>
   </edit>
</match>

That was all I needed for everything to have emoji support. Of course, you will need to install the noto emoji fonts. If you're on Arch, you can find it here. You can also run fc-cache after, but this is usually done automatically if you are running an application which is using the fontconfig library.

@nhtua
Copy link

nhtua commented Dec 4, 2020

For someone lazy

wget -O- https://gist.github.com/himalay/5c404a5f6653cb35154ceb3a6c606211/raw/b6ca198357b458c0e7ecc1ae0352de93621f8b87/color-emoji-on-linux.sh | bash

use at your own risk

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment