-
-
Save wedens/ed9694027fe143ea4be8b2d159392d3e to your computer and use it in GitHub Desktop.
twemoji based on https://aur.archlinux.org/packages/ttf-twemoji/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> | |
<fontconfig> | |
<!-- | |
This config attempts to guarantee that colorful emojis from Twemoji will be displayed, | |
no matter how badly the apps and websites are written. | |
It uses a few different tricks, some of which introduce conflicts with other emoji fonts. | |
If you wish to simultaneously use multiple emoji fonts, make sure to adapt this config. | |
--> | |
<!-- | |
This adds a generic family 'emoji', | |
aimed for apps that don't specify specific font family for rendering emojis. | |
--> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>emoji</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<!-- | |
This adds Twemoji as a final fallback font for the default font families. | |
In this case, Twemoji will be selected if and only if no other font can provide a given symbol. | |
Note, usually other fonts will have some glyphs available (especilly Symbola font), | |
causing some emojis to be black&white and ugly. | |
--> | |
<match target="pattern"> | |
<test name="family"><string>sans</string></test> | |
<edit name="family" mode="append"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test name="family"><string>serif</string></test> | |
<edit name="family" mode="append"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test name="family"><string>sans-serif</string></test> | |
<edit name="family" mode="append"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test name="family"><string>monospace</string></test> | |
<edit name="family" mode="append"><string>Twemoji</string></edit> | |
</match> | |
<!-- | |
It seems Symbola is often selected as a fallback font before Twemoji. | |
This will try to remove Symbola from the list of fallback fonts. | |
--> | |
<selectfont> | |
<rejectfont> | |
<pattern> | |
<patelt name="family"> | |
<string>Symbola</string> | |
</patelt> | |
</pattern> | |
</rejectfont> | |
</selectfont> | |
<!-- | |
Recognize alternative ways of writing Twemoji family name. | |
--> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Emoji One</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Twemoji Color</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Twemoji Mozilla</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<!-- | |
Use Twemoji when other popular fonts are being specifically requested. | |
It is quite common that websites would only request Apple and Google emoji fonts, and then fallback to b&w Symbola. | |
These aliases will make Twemoji be selected in such cases to provide good-looking emojis. | |
--> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Apple Color Emoji</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Segoe UI Emoji</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Segoe UI Symbol</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Noto Color Emoji</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>NotoColorEmoji</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Android Emoji</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Noto Emoji</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Twitter Color Emoji</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>EmojiOne</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Twemoji Mozilla</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>TwemojiMozilla</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>EmojiTwo</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Emoji Two</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>EmojiSymbols</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
<match target="pattern"> | |
<test qual="any" name="family"><string>Symbola</string></test> | |
<edit name="family" mode="assign" binding="same"><string>Twemoji</string></edit> | |
</match> | |
</fontconfig> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ stdenv, fetchurl, rpmextract }: | |
let | |
fedRel = "1.fc30"; | |
in | |
stdenv.mkDerivation rec { | |
name = "twemoji-${version}"; | |
version = "11.2.0"; | |
src = fetchurl { | |
url = "https://archives.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/Packages/t/twitter-twemoji-fonts-${version}-${fedRel}.noarch.rpm"; | |
sha256 = "c6487c14f2e719019f539613267b70bca920afee1b06ce05bd062ee2af98dc2c"; | |
}; | |
buildInputs = [ rpmextract ]; | |
unpackPhase = '' | |
rpmextract $src | |
''; | |
installPhase = '' | |
install -Dm644 usr/share/fonts/twemoji/Twemoji.ttf \ | |
$out/share/fonts/truetype/twemoji.ttf | |
install -Dm644 ${./75-twemoji.conf} $out/etc/fonts/conf.d/75-twemoji.conf | |
install -Dm644 ${./75-twemoji.conf} $out/etc/fonts/2.11/conf.d/75-twemoji.conf | |
''; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment