# Better fonts and more symbols with Gentoo

Posted on
gentoo font rendering

## What do I need?

It's really annoying when viewing some random website and all you see is those boxes instead of the actual symbol. So the first thing to do is to install some fonts that support many code points, like Google's Noto. There's also alot of web pages that use Microsoft's Corefonts.

## Prepare a font set

So let's begin with installing some fonts that will cover most code points (over 60 000). I usually use the /etc/portage/sets/ folder and use emerge @<set-name> for stuff that I use on all my computers.

Either use the command below to just add the required fonts to the fonts set, or install them manually.

(root) echo "media-fonts/noto\nmedia-fonts/croscorefonts" > /etc/portage/sets/fonts


## Even more symbols!

Optionally, you can have even more symbols if you enable the cjk flag for the media-fonts/noto package. This adds many symbols for Chinese, Japanese and Korean languages.

(root) echo "media-fonts/noto cjk" >> /etc/portage/package.use/noto


### If you've chosen Microsoft Corefonts

If you have chosen to use the Microsoft fonts, also add the media-fonts/corefonts package to the set:

(root) echo "media-fonts/corefonts" >> /etc/portage/sets/fonts


## Install them!

Now just install all these fonts in one go with:

(root) emerge --ask @fonts


Note: If you are using the Microsoft Corefonts the command will ask you if you want to accept the EULA, say Yes and then run dispatch-conf:

(root) dispatch-conf


Press u to use the suggested changes (and therefore accepting the EULA).

And now you can try to install again:

(root) emerge --ask @fonts


## Enable font configurations

You also need to enable the fonts so that they can be used as fallback fonts with fontconfig, Gentoo provides support for doing this with the eselect utility.

List the different font configurations with:

eselect fontconfig list


You should see a list where croscore and noto is mentioned.

...
[28]  60-liberation.conf
[29]  62-croscore-arimo.conf
[30]  62-croscore-cousine.conf
[31]  62-croscore-symbolneu.conf
[32]  62-croscore-tinos.conf
...
[36]  66-noto-mono.conf
[37]  66-noto-sans.conf
[38]  66-noto-serif.conf
...
[41]  70-noto-cjk.conf


The Liberation font family is also nice to enable as it provides several nice alternatives to some common proprietary fonts.

Let's enable all of those (as root)!

eselect fontconfig enable 62-croscore-arimo.conf
eselect fontconfig enable 62-croscore-cousine.conf
eselect fontconfig enable 62-croscore-symbolneu.conf
eselect fontconfig enable 62-croscore-tinos.conf
eselect fontconfig enable 60-liberation.conf
eselect fontconfig enable 66-noto-mono.conf
eselect fontconfig enable 66-noto-sans.conf
eselect fontconfig enable 66-noto-serif.conf
eselect fontconfig enable 70-noto-cjk.conf


And you're done!

The changes will be applied after you've restarted your running applications.