Mit Powerline gepatchte Schriftarten unter OSX 10.9.3 - iTerm2 & Chrome
21449
nfarrar
Ich suche nach einer funktionierenden Lösung zum Rendern von Powerline-Zeichen unter OSX in iTerm2 und Chrome. Es gibt eine Menge Dokumentation, die ich verwendet habe. Ich habe versucht, mehrere Methoden zu verwenden. Bisher scheint keine richtig zu funktionieren (obwohl vorgefertigte Schriftarten mit Fontbook teilweise funktionieren). Details enthalten unten.
Gibt es eine Arbeitsmethode, damit die Powerline-Glyphen in iTerm2 unter OSX 10.9.3 korrekt dargestellt werden?
Sollten die Powerline-Glyphen in 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 in Chrome die aktuelle Schriftart keine Bindungen für die Glyphen enthält, wird Chrome versuchen, die Bindungen in einer anderen im 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 mit dieser Schriftart unabhängig von der verwendeten Schriftart gerendert werden?
Unicode-Zeichen für den privaten Bereich
Wenn ich die Funktionsweise von Powerline-kompatiblen Patch-Schriftarten verstehe, binden sie skalierbare Grafiken an bestimmte Werte im privaten Unicode-Verwendungsbereich:
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:
Es funktioniert jedoch nicht für mich (OSX 10.9.3, iTerm2, zsh), auch wenn eine mit Powerline gepatchte Schriftart installiert ist und iTerm2 für die Verwendung einer dieser Schriftarten konfiguriert ist.
Ich habe verschiedene Methoden zum Installieren der gepatchten Schriftarten ausprobiert:
FontBook & vorgefertigte Schriftarten
Ich habe die Schriftarten von Localtog / Powerline-Schriftarten heruntergeladen und mit FontBook installiert. Auf denselben Seiten werden einige der Glyphen gerendert, andere nicht. Auf anderen Seiten wird keine der Glyphen dargestellt:
In iTerm2 (dies geschieht bei allen getesteten Powerline-Schriftarten), werden einige Zeichen gerendert, andere jedoch nicht:
In macvim (Terminal), auf dem vim-airline installiert ist, werden einige der Zeichen gerendert, andere jedoch nicht korrekt:
Fontconfig
Ich habe alle mit Powerline gepatchten Schriftarten deinstalliert, fontconfig mit Homebrew installiert, die Powerline-Schriftart installiert und den Schriftcache neu erstellt:
Die Schriftart wurde erkannt und fontconfig gab an, dass sie installiert wurde. Sie wurde jedoch nicht in FontBook angezeigt und konnte in iTerm2 nicht ausgewählt werden.
Nachdem ich das ausgeführt hatte, entfernte ich die Schriftarten, erstellte fc-cache erneut und deinstallierte fontconfig.
Ich verwende derzeit die vorgefertigten Schriftarten, die in fontbook installiert sind, was teilweise funktioniert, aber ich hoffe, dass mir jemand helfen kann, das Problem etwas besser zu verstehen, sodass ich eine funktionierende Lösung finden kann.
Aktualisieren
Diese Methode scheint alles in iTerm2 zum Laufen zu bringen, obwohl ich mir bei Chrom / System-Rendering-Problemen immer noch nicht sicher 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
Installieren Sie einfach die Eingabe-Mono- Schriftart, die Powerline vollständig unterstützt.
Um das Folgende zu funktionieren, muss die Eingabe-Mono-Schriftart Version 1.1 sein. Sie können die Version der Schriftart überprüfen, indem Sie zu gehen Font Book → View → Show Font Infound die Versionsnummer anzeigen.
Mit Terminal.app funktioniert das sofort. Wählen Sie einfach die Schriftart und Sie sind bereit.
Mit iTerm2 müssen Sie einige Dinge ändern:
Gehen Sie zu Voreinstellungen → Profile → Text und deaktivieren Sie die Option `Verwenden Sie eine andere Schriftart für Nicht-ASCII-Text.
Klicken Sie oben auf Change Fontund wählen Sie Input Mono. Zusätzlich müssen Sie Character Spacing → Verticalauf 110% wechseln . Es scheint, dass Terminal und iTerm2 den Zeichenabstand auf unterschiedliche Weise darstellen.
Deaktivieren Sie die Option "Verwenden Sie eine andere Schriftart für Nicht-ASCII-Text."
camomileCase vor 8 Jahren
0
1
Thomas Ross
Möglicherweise haben Sie nicht aktualisiert bash. OS X wird mit ausgeliefert bash < 4, Sie können also keine printfoder echo -eUnicode-Codes verwenden.
Schritte zum Aktualisieren bashmit homebrew:
brew install bash
Finde das Präfix der bashvon Homebrew installierten, meine war /usr/local/Cellar/bash/4.3.30/, also war meine Bash-Binärdatei /usr/local/Cellar/bash/4.3.30/bin/bash.
sudo (vim|nano|emacs|etc) /etc/shells
Holen Sie sich den bash-Pfad und fügen Sie ihn am Ende der Liste ein (oder ersetzen Sie ihn /usr/bin, wenn Sie wirklich mutig sind.)
chsh
Ändern Sie die Shell:Zeile entsprechend Ihrem bashPfad.