Fuentes parcheadas Powerline en OSX 10.9.3 - iTerm2 y Chrome

18

Estoy buscando una solución de trabajo para representar caracteres de línea eléctrica en OSX en iTerm2 y Chrome. Hay mucha documentación acerca de que he intentado usar varios métodos, ninguno parece funcionar correctamente hasta ahora (aunque las fuentes preconfiguradas con el libro de fuentes funcionan parcialmente ). Detalles incluidos a continuación.

  1. ¿Existe algún método de trabajo para que los glifos de la línea eléctrica se representen correctamente en iTerm2 en OSX 10.9.3?
  2. ¿Deberían los glifos de powerline mostrarse correctamente en las páginas web? ¿Alguna idea de por qué no lo son y cómo puedo solucionarlo?

¿Cómo funciona la representación de estos caracteres (a nivel de sistema / aplicación)? ¿Difiere de una aplicación a otra? En Chrome, si la fuente actual no contiene enlaces para los glifos, ¿intentará Chrome encontrar los enlaces en otra fuente presente en el sistema y usarlos? ¿Hay alguna forma de proporcionar enlaces para estos caracteres unicode a nivel de sistema para que se representen con esa fuente, independientemente de la fuente que se esté utilizando?

Personajes de área privada Unicode

Si entiendo la forma en que funcionan las fuentes parcheadas compatibles con powerline, asocian gráficos escalables a valores específicos en el área de uso privado 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

Para probar los glifos en una terminal, he leído que esto debería funcionar:

echo -e "\ue0a0\ue0a1\ue0a2\ue0b0\ue0b1\ue0b2\ue0b3"

Sin embargo, no funciona para mí (OSX 10.9.3, iTerm2, zsh) incluso con una fuente parcheada con powerline instalada e iTerm2 configurado para usar una de esas fuentes.

He probado varios métodos para instalar las fuentes parcheadas:

FontBook y fuentes preconfiguradas

Descargué las fuentes de Localtog / powerline-fonts y las instalé usando FontBook. En las mismas páginas, algunos de los glifos se procesan pero otros no. En otras páginas, ninguno de los glifos representa:

Tema Agnoster
(fuente: staticflickr.com )

Documentación de Powerline
(fuente: staticflickr.com )

En iTerm2 (esto sucede con todas las fuentes powerline que he probado), algunos de los caracteres se procesan, pero otros no:

iTerm2 y zsh
(fuente: staticflickr.com )

En macvim (terminal) con vim-airline instalado, algunos de los caracteres se procesan, pero algunos se procesan incorrectamente:

vim-airline
(fuente: staticflickr.com )

Fontconfig

Desinstalé todas las fuentes parcheadas con powerline, instalé fontconfig con homebrew, instalé la fuente powerline y reconstruí el caché de fuentes:

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

Se detectó la fuente y fontconfig dijo que estaba instalada, sin embargo, no apareció en FontBook y no pude seleccionarla en iTerm2.

Después de ejecutar esto, eliminé las fuentes, volví a configurar fc-cache y desinstalé fontconfig.

Actualmente estoy usando las fuentes preinstaladas instaladas en el libro de fuentes, que funcionan parcialmente, pero espero que alguien pueda ayudarme a entender el problema un poco mejor para que pueda encontrar una solución que funcione.

Actualizar

Este método parece hacer que todo funcione en iTerm2, aunque todavía no estoy seguro acerca de los problemas de renderizado de Chrome / System.

FontForge

Instale fontforge con enlaces de python:

brew install fontforge --with-python

Instale 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

Descargar, parchear e instalar la fuente:

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
nfarrar
fuente

Respuestas:

12

Simplemente instale la fuente Input Mono , viene con soporte completo para powerline.

Para que funcione lo siguiente, la fuente Input Mono debe ser la versión 1.1. Puede verificar la versión de fuente yendo a Font Book → View → Show Font Info, y mirar el número de versión.

Con Terminal.app funciona fuera de la caja. Simplemente seleccione la fuente y estará listo.

Con iTerm2, debe modificar un par de cosas:

  • Vaya a Preferencias → Perfiles → Texto y desmarque `Usar una fuente diferente para texto que no sea ASCII.
  • Justo arriba, haga clic en Change Fonty seleccione Input Mono. Además tienes que cambiar Character Spacing → Verticalal 110%. Parece que Terminal e iTerm2 representan el espaciado de caracteres de una manera diferente.
jherran
fuente
Desmarcar Use a different font for non-ASCII text.marcó la diferencia para mí.
camomileCase
2

Lo más probable es que no hayas actualizado bash. OS X incluye bash < 4, por lo que no puede printfo echo -ecódigos Unicode.

Pasos para actualizar bashcon homebrew:

  1. brew install bash
  2. Encuentra el prefijo del bashinstalado por homebrew, el mío era /usr/local/Cellar/bash/4.3.30/, así que mi binario bash fue /usr/local/Cellar/bash/4.3.30/bin/bash.
  3. sudo (vim|nano|emacs|etc) /etc/shells
  4. Obtenga dicha ruta bash y agréguela al final de la lista (o reemplácela /usr/bin, si es realmente valiente).
  5. chsh
  6. Cambia la Shell:línea para que coincida con tu bashcamino.
  7. Reinicia tu mandato.

Y deberías estar arreglado.


fuente