Skip to content

Instantly share code, notes, and snippets.

@miawgogo
Created May 22, 2020 18:43
Show Gist options
  • Save miawgogo/5c0f7e5b07f865e1e80f1f7d902628e6 to your computer and use it in GitHub Desktop.
Save miawgogo/5c0f7e5b07f865e1e80f1f7d902628e6 to your computer and use it in GitHub Desktop.
<?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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment