After switching to arch linux as my daily driver I came across a new problem: I couldn't see emojis!
There are some emoji fonts you can install and setup. One of them is
noto-fonts-emoji. I decided to write a small script to automate the setup of the font and explain the steps below:
#!/bin/sh set -e if [[ $(id -u) -ne 0 ]] ; then echo "Please run as root" ; exit 1 ; fi echo "Setting up Noto Emoji font..." # 1 - install noto-fonts-emoji package pacman -S noto-fonts-emoji --needed # pacman -S powerline-fonts --needed echo "Recommended system font: inconsolata regular (ttf-inconsolata or powerline-fonts)" # 2 - add font config to /etc/fonts/conf.d/01-notosans.conf echo "<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <alias> <family>sans-serif</family> <prefer> <family>Noto Sans</family> <family>Noto Color Emoji</family> <family>Noto Emoji</family> <family>DejaVu Sans</family> </prefer> </alias> <alias> <family>serif</family> <prefer> <family>Noto Serif</family> <family>Noto Color Emoji</family> <family>Noto Emoji</family> <family>DejaVu Serif</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>Noto Mono</family> <family>Noto Color Emoji</family> <family>Noto Emoji</family> <family>DejaVu Sans Mono</family> </prefer> </alias> </fontconfig> " > /etc/fonts/local.conf # 3 - update font cache via fc-cache fc-cache echo "Noto Emoji Font installed! You may need to restart applications like chrome. If chrome displays no symbols or no letters, your default font contains emojis." echo "consider inconsolata regular"
The first part is to install the package
noto-fonts-emoji. The parameter
--needed is used to only download and install the package, if it's not already installed.
The second part is just creating a config file and saving it.
The third part with
fc-cache is the refresh of the font cache.
Inconsolata Nerd Font Mono Regular or any other font without emojis as system font. If you see numbers as emojis in your Browser, it is likely that your current system font contains emojis itself (DejaVu is one example) and you need to switch to a different font so you get the colored emojis.
There is a much easier way and I edited this post to contain the new information. Before there was a bit trial and error to find out the number for the font config file. With the new way, it's just one file.
Top comments (15)
But I noticed that
<?xml version="1.0"?>evaluates to
<?xml version=1.0?>(in zsh) which causes a syntax error when running fc-cache.
The same thing happens for
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">. Escaping the double quotes fixes this.
Thanks Tim, good point! Maybe I should mention that in the post :)
I believe changing double quotes to single quotes would avoid the error from coming up. Other than that, the script is great! I've been trying to do smth like this for some time now, so thank you for writing this!
Thanks for this!
I was able to get it to work by putting the local.conf file into ~/.fonts and running
fc-cachewithout sudo. The only need for sudo is to install the package. Of course putting the file into ~/.fonts will only work for the local user, I just try to avoid sudo when I can.
Do you know how I could get this script working with
Twitter Emoji Color(aka
I replaced all lines with
<family>Noto Color Emoji</family>with
<family>Twitter Color Emoji</family>, but it didn't work.
Go into whatever your font management application is for your DE, and then search for the font's name. Whatever name shows up in the font manager is the name that you have to use in the section. It's how I found out to use JoyPixels for my emojis.
It works better then ArchWiki itself.
However, it destroyed my Conkies. I have to tweak them a bit.
> /etc/fonts/local.confis dangerous. You should either use a text editor or backup first.
I would also consider using
fc-cache -v, instead of
Actually, only ALMOST perfect.
How do i revert this? My fonts seems weird now,with a lot of space between each word :/
The easiest way would be if you have a backup of your
/etc/fonts/local.conffile or didn't had this file at all before!
In that case, either restore the backup file or delete the
/etc/fonts/local.conffile completely and run
In case you have no backup and had customizations in that file before, open it with an editor and remove all lines containing the emoji font (in this case e.g.
Noto...). Save and run
you're welcome ☺️ Did it work?
Hey @darksmile92 can you help me with installing this font on Fedora... Emoji was not just working instead of emoji a white rectangle box just show up.