Ich suche nach einer funktionierenden Lösung zum Rendern von Powerline-Zeichen unter OSX in iTerm2 und Chrome. Es gibt eine Menge Dokumentation, bei der ich versucht habe, verschiedene Methoden zu verwenden. Bisher scheint keine richtig zu funktionieren (obwohl vorab gepatchte Schriften mit Fontbook teilweise funktionieren). Details dazu weiter unten.
- Gibt es eine Arbeitsmethode, mit der Powerline-Glyphen in iTerm2 unter OSX 10.9.3 korrekt gerendert werden können?
- Sollten die Powerline-Glyphen auf Webseiten korrekt dargestellt werden? Irgendeine Idee, warum sie nicht sind und wie ich es reparieren kann?
Wie funktioniert das Rendern dieser Zeichen (auf System- / Anwendungsebene)? Unterscheidet es sich von Anwendung zu Anwendung? Wenn die aktuelle Schriftart in Chrome keine Bindungen für die Glyphen enthält, versucht Chrome dann, die Bindungen in einer anderen auf dem System vorhandenen Schriftart zu finden und diese zu verwenden? Gibt es eine Möglichkeit, Bindungen für diese Unicode-Zeichen auf Systemebene bereitzustellen, damit sie unabhängig von der verwendeten Schriftart mit dieser Schriftart gerendert werden?
Unicode-Zeichen für den privaten Bereich
Wenn ich die Funktionsweise von Powerline-kompatiblen gepatchten Schriftarten verstehe, binden sie skalierbare Grafiken an bestimmte Werte im Bereich für den privaten Gebrauch von Unicode:
U+E0A0 Version control branch
U+E0A1 LN (line) symbol
U+E0A2 Closed padlock
U+E0B0 Rightwards black arrowhead
U+E0B1 Rightwards arrowhead
U+E0B2 Leftwards black arrowhead
U+E0B3 Leftwards arrowhead
Um die Glyphen in einem Terminal zu testen, habe ich gelesen, dass dies funktionieren sollte:
echo -e "\ue0a0\ue0a1\ue0a2\ue0b0\ue0b1\ue0b2\ue0b3"
Es funktioniert jedoch nicht für mich (OSX 10.9.3, iTerm2, zsh), auch wenn eine mit Powerline-Patches versehene Schriftart installiert und iTerm2 für die Verwendung einer dieser Schriftarten konfiguriert ist.
Ich habe verschiedene Methoden zum Installieren der gepatchten Schriften ausprobiert:
FontBook & Prepatched Fonts
Ich habe die Fonts von Localtog / Powerline-Fonts heruntergeladen und mit FontBook installiert. Auf den gleichen Seiten werden einige der Glyphen gerendert, andere jedoch nicht. Auf anderen Seiten wird keine der Glyphen gerendert:
(Quelle: staticflickr.com )
(Quelle: staticflickr.com )
In iTerm2 (dies geschieht mit allen von mir getesteten Powerline-Schriftarten) werden einige Zeichen gerendert, andere jedoch nicht:
(Quelle: staticflickr.com )
In macvim (terminal) mit installierter vim-airline werden einige der Zeichen zwar gerendert, andere jedoch falsch:
(Quelle: staticflickr.com )
Fontconfig
Ich habe alle Powerline-gepatchten Schriften deinstalliert, fontconfig mit homebrew installiert, die Powerline-Schrift installiert und den Schriften-Cache neu erstellt:
wget -P ~/.fonts/ https://github.com/Lokaltog/powerline/raw/develop/font/PowerlineSymbols.otf
wget -P ~/.config/fontconfig/conf.d/ https://github.com/Lokaltog/powerline/raw/develop/font/10-powerline-symbols.conf
fc-cache -vf ~/.fonts
Die Schriftart wurde erkannt und fontconfig meldet, dass sie installiert wurde. Sie wurde jedoch nicht in FontBook angezeigt, und ich konnte sie in iTerm2 nicht auswählen.
Nachdem ich dies ausgeführt habe, habe ich die Schriftarten entfernt, den fc-Cache erneut ausgeführt und fontconfig deinstalliert.
Ich verwende derzeit die in fontbook installierten vorab gepatchten Schriftarten, die teilweise funktionieren. Ich hoffe jedoch, dass mir jemand helfen kann, das Problem ein wenig besser zu verstehen, damit ich eine funktionierende Lösung finden kann.
Aktualisieren
Diese Methode scheint alles in iTerm2 zum Laufen zu bringen, obwohl ich mir bei Problemen mit der Wiedergabe von Chrom / System immer noch unsicher bin.
FontForge
Installieren Sie fontforge mit Python-Bindungen:
brew install fontforge --with-python
Installieren Sie den Powerline-Fontpatcher:
mkdir -p ~/.local/src
git clone https://github.com/Lokaltog/powerline-fontpatcher.git ~/.local/src/powerline-fontpatcher
cd ~/.local/src/powerline-fontpatcher && python setup.py install && cd
export powerline_symbols=~/.local/src/powerline-fontpatcher/fonts/powerline-symbols.sfd
Schriftart herunterladen, patchen und installieren:
wget http://sourceforge.net/projects/sourcecodepro.adobe/files/SourceCodePro_FontsOnly-1.017.zip
unzip SourceCodePro_FontsOnly-1.017.zip
find SourceCodePro_FontsOnly-1.017/TTF -name \*.ttf -exec powerline-fontpatcher --source-font=$powerline_symbols --no-rename {} \;
mv *.ttf /Library/Fonts
Use a different font for non-ASCII text.
machte den Unterschied für mich.