Skip to main content

Fonts

For most desktop environments, a sufficient number of fonts is installed as dependencies. However, there's several additional packages for different styles and writing systems (latin vs. non-latin scripts). Arch Wiki has an extensive list of available fonts in both the repositories and the AUR. Installing the Noto font family also provides a vast coverage over a large array of scripts.

Configuration

Most applications read the font configuration provided by the fontconfig library. These configurations are written in XML and read from several different locations.

Location Description
/etc/fonts/fonts.conf Master configuration file (not for editing!)
/etc/fonts/conf.d System-wide additional drop-in configuration files, hand-written or as symbolic links
$XDG_CONFIG_HOME/fontconfig/fonts.conf Per-user config file
$XDG_CONFIG_HOME/fontconfig/conf.d Per-user additional drop-in configuration files, hand-written or as symbolic links

Configuration files are read in and applied in lexical order. If you need rules applied in a specific order, make sure to prepend them with 2-digit numbers in the order you need.

A minimal fontconfig configuration file contains these headers:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>

  <!-- settings go here -->

</fontconfig>

Some font packages come with pre-defined rule sets, which are installed to /usr/share/fontconfig/conf.avail/. To apply them, it's best to create symbolic links to them in their respective drop-in configuration directories.

To apply them system-wide, link them from the /etc/fonts/conf.d directory:

cd /etc/fonts/conf.d
sudo ln -s /usr/share/fontconfig/conf.avail/70-no-bitmaps-except-emoji.conf

To apply them only to the currently logged in user, link them in the $XDG_CONFIG_HOME/fontconfig/conf.d directory:

HINT: The environment variable $XDG_CONFIG_HOME should point to the .config sub-directory in your home directory. If it doesn't, use $HOME/.config instead for the examples or set it with export.

mkdir $XDG_CONFIG_HOME/fontconfig/conf.d
ln -s /usr/share/fontconfig/conf.avail/70-no-bitmaps-except-emoji.conf $XDG_CONFIG_HOME/fontconfig/conf.d

Emoji Fonts

There are a few emoji fonts available on Arch.

Name Package Description
JoyPixels ttf-joypixels formerly EmojiOne, part of Emoji as a Service, proprietary
Noto Color Emoji noto-fonts-emoji Google open-source emoji font, color
Twemoji (Twitter Emoji) ttf-twemoji (AUR) Emoji for everyone, originally created by Twitter

Install your selected emoji font:

pacman -S noto-fonts-emoji

Applications requesting emoji to be displayed should pick up on the font after restarting them.

NOTE: KDE sometimes applies emoji fonts incorrectly, either not showing them at all or showing the outline symbol version from a different font. You can fix this by installing noto-color-emoji-fontconfig from the AUR and creating a symbolic link to the configuration file as shown above.