Vielleicht hatten auch schon einige von euch das Problem, dass die Unicode Zeichen im Terminal anzeigen wollten, jedoch kein Font gefunden, welches Emojis und ihr Lieblingsfont z.B. Inconsolata unterstützt. Auf dieses Problem bin ich gestoßen, als ich anfing mit i3Blocks meine Statusbar zu gestalten.

Als Basis neme ich das ganz gewöhliche Inconsolata Mono Font und als Emoji-Font fand ich das Twitter Color Emoji Font. Dieses wollte ich nicht alleine nutzen, da ich für Schriften bei Inconsolata bleiben wollten. Obwohl es Farben unterstützt, hat es auch die reinen Umrisse, falls Farben nicht unterstützt/erwünscht sind.

Um diese beiden Fonts zu mergen benutze ich das program fotnforge, welches in den gängigen Paketverwaltungen verfügbar ist.

Ich start also fontforge mit dem Ausgangsfont als parameter

fontforge Inconsolata.ttf
  • Nun kann ich unter dem Menüpunkt Element das Emoji-Font importieren.
  • Um nur die darzustellenden Glyphs anzuzeigen, aktiviert man im Menüpunk Encoding die Compact-Option.
  • Da in meinem Fall die Emojis noch viel zu groß sind, wähle ich sie alle aus und verkleinere sie mit Ctrl+* → scale uniformly*
  • Unter dem Menupunkt File→Create Font kann man nun das font exportieren.

Das Font lege ich in ~/.fonts ab und nenne es InconsolataEmoji.ttf Um es einzubinden benutze ich fontconfig, welches auch in apt verfügbar ist. Meine Konfigurationsdatei in ~/.config/fontconfig/fonts.conf sieht folgendermaßen aus.

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

<alias>
    <family>serif</family>
    <prefer><family>Linux Libertine</family></prefer>
</alias>

<alias>
    <family>sans-serif</family>
    <prefer><family>Linux Biolinum</family></prefer>
</alias>
<alias>
    <family>sans</family>
    <prefer><family>Linux Biolinum</family></prefer>
</alias>
<alias>
    <family>monospace</family>
    <prefer><family>InconsolataEmoji</family></prefer>
</alias>
</fontconfig>

In meinem Terminal wurde die Schrift nach einem Re-Login erfolgreich geladen. Damit meine i3 statusbar dies auch tat, fügte ich in der Bar-Section meiner Konfigurationsdatei forgende zeile ein.

font pango:mono 14

EDIT 2019/06/12

Man kann sich unter Arch Linux die ganze Arbeit aber auch sparen und für farbige Emojis das AUR ttf-emojione und für das terminal das AUR ttf-symbola installieren.