<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!--
Twitter Color Emoji SVGinOT Font
Fontconfig fonts.conf for a Bitstream Vera default

https://github.com/eosrei/twemoji-color-font

The DejaVu font family is based on the Bitstream Vera font family to provide
greater unicode coverage. The only way to override the emoji it includes is
to make the emoji font the primary system font. This shouldn't be a problem,
but a number of programs do not correctly use font fallback resulting in font
rendering errors everywhere.

This font.conf makes Bitstream Vera the default font for Serif, Sans-Serif,
and Monospace font requests since it does not contain any Unicode Emoji
characters. Twitter Color Emoji font is the first fallback, followed by DejaVu
(or whatever the existing default is) to provide everything else.

Install required fonts with:
sudo apt-get install ttf-bitstream-vera

Test with:
fc-match -s serif
fc-match -s sans-serif
fc-match -s monospace
-->
<fontconfig>
  <match target="font">
    <!-- If the requested font is Bitstream Vera Serif -->
    <test name="family" compare="eq">
        <string>Bitstream Vera Serif</string>
    </test>
    <!-- Replace the entire match list with Bitstream Vera Serif alone -->
    <edit name="family" mode="assign_replace">
      <string>Bitstream Vera Serif</string>
    </edit>
    <!-- Assign the serif family -->
    <edit name="family" mode="append_last">
      <string>serif</string>
    </edit>
  </match>

  <match>
    <!-- If the requested font is serif -->
    <test qual="any" name="family">
        <string>serif</string>
    </test>
    <!-- Make Bitstream Vera Serif the first result -->
    <edit name="family" mode="prepend_first">
      <string>Bitstream Vera Serif</string>
    </edit>
    <!-- Followed by Twitter Color Emoji -->
    <edit name="family" mode="prepend_first">
      <string>Twitter Color Emoji</string>
    </edit>
  </match>

  <match target="font">
    <!-- If the requested font is Bitstream Vera Sans -->
    <test name="family" compare="eq">
        <string>Bitstream Vera Sans</string>
    </test>
    <!-- Replace the entire match list with Bitstream Vera Sans alone -->
    <edit name="family" mode="assign_replace">
      <string>Bitstream Vera Sans</string>
    </edit>
    <!-- Assign the sans-serif family -->
    <edit name="family" mode="append_last">
      <string>sans-serif</string>
    </edit>
  </match>

  <match target="pattern">
    <!-- If the requested font is sans-serif -->
    <test qual="any" name="family">
        <string>sans-serif</string>
    </test>
    <!-- Make Bitstream Vera Sans the first result -->
    <edit name="family" mode="prepend_first">
      <string>Bitstream Vera Sans</string>
    </edit>
    <!-- Followed by Twitter Color Emoji -->
    <edit name="family" mode="prepend_first">
      <string>Twitter Color Emoji</string>
    </edit>
  </match>

  <match target="font">
    <!-- If the requested font is Bitstream Vera Sans Mono -->
    <test name="family" compare="eq">
        <string>Bitstream Vera Sans Mono</string>
    </test>
    <!-- Replace the entire match list with Bitstream Vera Sans Mono alone -->
    <edit name="family" mode="assign_replace">
      <string>Bitstream Vera Sans Mono</string>
    </edit>
    <!-- Assign the monospace family last -->
    <edit name="family" mode="append_last">
      <string>monospace</string>
    </edit>
  </match>

  <match target="pattern">
    <!-- If the requested font is monospace -->
    <test qual="any" name="family">
        <string>monospace</string>
    </test>
    <!--
    Make Bitstream Vera Sans Mono the first result
    Note: If you want a different monospace font, this is where you change it.
    -->
    <edit name="family" mode="prepend_first">
      <string>Bitstream Vera Sans Mono</string>
    </edit>
    <!-- Followed by Twitter Color Emoji -->
    <edit name="family" mode="prepend_first">
      <string>Twitter Color Emoji</string>
    </edit>
  </match>

  <!-- Add emoji generic family -->
  <alias binding="strong">
    <family>emoji</family>
    <default><family>Twitter Color Emoji</family></default>
  </alias>

  <!-- Alias requests for the other emoji fonts -->
  <alias binding="strong">
    <family>Apple Color Emoji</family>
    <prefer><family>Twitter Color Emoji</family></prefer>
    <default><family>sans-serif</family></default>
  </alias>
  <alias binding="strong">
    <family>Segoe UI Emoji</family>
    <prefer><family>Twitter Color Emoji</family></prefer>
    <default><family>sans-serif</family></default>
  </alias>
  <alias binding="strong">
    <family>Noto Color Emoji</family>
    <prefer><family>Twitter Color Emoji</family></prefer>
    <default><family>sans-serif</family></default>
  </alias>
</fontconfig>
