Fontes corrigidas do Powerline no OSX 10.9.3 - iTerm2 e Chrome


18

Estou procurando uma solução que funcione para renderizar caracteres powerline no OSX no iTerm2 e no Chrome. Há muita documentação em torno da qual tentei usar vários métodos, nenhum parece funcionar corretamente até agora (embora as fontes pré-corrigidas com o livro de fontes funcionem parcialmente ). Detalhes incluídos abaixo.

  1. Existe um método de trabalho para fazer com que os glifos da linha de energia sejam renderizados corretamente no iTerm2 no OSX 10.9.3?
  2. Os glifos de linha de força devem ser renderizados corretamente nas páginas da web? Alguma idéia de por que não são e como posso corrigi-lo?

Como a renderização desses caracteres funciona (no nível do sistema / aplicativo)? Difere de aplicação para aplicação? No chrome, se a fonte atual não contiver ligações para os glifos, o chrome tentará encontrar as ligações em outra fonte presente no sistema e utilizá-las? Existe alguma maneira de fornecer ligações para esses caracteres unicode no nível do sistema para que eles sejam renderizados usando essa fonte, independentemente da fonte que está sendo usada?

Caracteres da área privada Unicode

Se eu entendo como as fontes corrigidas compatíveis com powerline funcionam, elas vinculam gráficos escaláveis ​​a valores específicos na á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 testar os glifos em um terminal, li que isso deve funcionar:

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

No entanto, ele não funciona para mim (OSX 10.9.3, iTerm2, zsh), mesmo com uma fonte com correção de linha de força instalada e o iTerm2 configurado para usar uma dessas fontes.

Eu tentei vários métodos para instalar as fontes corrigidas:

FontBook e fontes pré-corrigidas

Eu baixei as fontes do Localtog / powerline-fonts e as instalei usando o FontBook. Nas mesmas páginas, alguns dos glifos são renderizados, mas outros não. Em outras páginas, nenhum dos glifos processa:

Tema Agnoster Documentação Powerline

No iTerm2 (isso acontece com todas as fontes de linha de energia que testei), alguns dos caracteres são renderizados, mas outros não:

iTerm2 & zsh

No macvim (terminal) com o vim-airlines instalado, alguns dos caracteres são renderizados, mas alguns são renderizados incorretamente:

vim-companhia aérea

Fontconfig

Desinstalei todas as fontes com correção de linha de força, instalei fontconfig com homebrew, instalei a fonte de linha de força e reconstruí o cache da fonte:

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

A fonte foi detectada e o fontconfig disse que estava instalado, mas não apareceu no FontBook e não foi possível selecioná-lo no iTerm2.

Depois de executar isso, removi as fontes, reran fc-cache e desinstalei o fontconfig.

Atualmente, estou usando as fontes pré-corrigidas instaladas no fontbook, que funcionam parcialmente, mas espero que alguém possa me ajudar a entender um pouco melhor o problema, para que eu possa encontrar uma solução que funcione.

Atualizar

Esse método parece fazer com que tudo funcione no iTerm2, embora ainda não tenha certeza sobre os problemas de renderização do sistema / cromo.

FontForge

Instale o fontforge com ligações python:

brew install fontforge --with-python

Instale o 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

Baixe, corrija e instale a fonte:

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

Respostas:


12

Basta instalar a fonte Input Mono , vem com suporte completo para powerline.

Para que o seguinte funcione, a fonte Input Mono deve ser a versão 1.1. Você pode verificar a versão da fonte acessando Font Book → View → Show Font Infoe ver o número da versão.

Com Terminal.app funciona fora da caixa. Basta selecionar a fonte e você está pronto.

Com o iTerm2, você precisa modificar algumas coisas:

  • Vá para Preferências → Perfis → Texto e desmarque `Use uma fonte diferente para texto não ASCII.
  • Logo acima, clique em Change Fonte selecione Entrada Mono. Além disso, você deve alterar Character Spacing → Verticalpara 110%. Parece que o Terminal e o iTerm2 processam o espaçamento de caracteres de uma maneira diferente.

Desmarcar Use a different font for non-ASCII text.fez toda a diferença para mim.
amigos estão

1

Provavelmente, você não atualizou bash. OS X vem com bash < 4, então você não pode printfou echo -eunicode códigos.

Etapas para atualizar bashcom homebrew:

  1. brew install bash
  2. Encontre o prefixo do bashinstalado pelo homebrew, o meu era /usr/local/Cellar/bash/4.3.30/, então meu bash era binário /usr/local/Cellar/bash/4.3.30/bin/bash.
  3. sudo (vim|nano|emacs|etc) /etc/shells
  4. Obtenha o referido caminho bash e adicione-o ao final da lista (ou substitua /usr/bin, se você for realmente corajoso).
  5. chsh
  6. Mude a Shell:linha para corresponder ao seu bashcaminho.
  7. Reinicie seu mandato.

E você deve estar consertado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.