Sto cercando una soluzione funzionante per il rendering di personaggi powerline su OSX in iTerm2 e Chrome. C'è molta documentazione in giro che ho tentato di utilizzare diversi metodi, nessuno sembra funzionare correttamente finora (anche se i caratteri precompilati con fontbook funzionano parzialmente ). Dettagli inclusi di seguito.
- Esiste un metodo di lavoro per ottenere il rendering corretto dei glifi powerline in iTerm2 su OSX 10.9.3?
- I glifi powerline devono essere visualizzati correttamente nelle pagine Web? Qualche idea sul perché non lo siano e come posso ripararlo?
Come funziona il rendering di questi personaggi (a livello di sistema / applicazione)? Differisce da un'applicazione all'altra? In Chrome, se il carattere corrente non contiene collegamenti per i glifi, Chrome tenterà di trovare i collegamenti in un altro carattere presente sul sistema e utilizzarli? Esiste un modo per fornire i collegamenti per questi caratteri unicode a livello di sistema in modo che vengano visualizzati utilizzando quel tipo di carattere, indipendentemente dal tipo di carattere utilizzato?
Personaggi Unicode area privata
Se capisco come funzionano i caratteri patchati compatibili con powerline, associano la grafica scalabile a valori specifici nell'area di utilizzo privato 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
Per testare i glifi in un terminale, ho letto che dovrebbe funzionare:
echo -e "\ue0a0\ue0a1\ue0a2\ue0b0\ue0b1\ue0b2\ue0b3"
Tuttavia non funziona per me (OSX 10.9.3, iTerm2, zsh) anche con un font con patch powerline installato e iTerm2 configurato per utilizzare uno di quei font.
Ho provato diversi metodi per installare i caratteri corretti:
FontBook e font preconfezionati
Ho scaricato i caratteri da Localtog / powerline-fonts e li ho installati usando FontBook. Sulle stesse pagine, alcuni dei glifi vengono visualizzati, ma altri no. Su altre pagine, nessuno dei glifi rende:
(fonte: staticflickr.com )
(fonte: staticflickr.com )
In iTerm2 (questo accade con tutti i font powerline che ho testato), alcuni dei personaggi vengono renderizzati, ma altri no:
(fonte: staticflickr.com )
In macvim (terminale) con vim-compagnia aerea installata, alcuni dei personaggi vengono visualizzati, ma alcuni vengono visualizzati in modo errato:
(fonte: staticflickr.com )
fontconfig
Ho disinstallato tutti i font con patch powerline, installato fontconfig con homebrew, installato il font powerline e ricostruito la cache dei font:
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
Il font è stato rilevato e fontconfig ha affermato che è stato installato, tuttavia non è stato visualizzato in FontBook e non sono stato in grado di selezionarlo in iTerm2.
Dopo averlo eseguito, ho rimosso i caratteri, rieseguito fc-cache e disinstallato fontconfig.
Attualmente sto usando i caratteri preimpostati installati nel libro dei font, che funzionano parzialmente, ma spero che qualcuno possa aiutarmi a capire un po 'meglio il problema in modo da trovare una soluzione funzionante.
Aggiornare
Questo metodo sembra far funzionare tutto in iTerm2, anche se non sono ancora sicuro dei problemi di rendering di Chrome / System.
FontForge
Installa fontforge con i collegamenti python:
brew install fontforge --with-python
Installa 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
Scarica, patch e installa font:
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.
fatto la differenza per me.