Я ищу рабочее решение для отрисовки символов Powerline на OSX в iTerm2 и Chrome. Вокруг было много документации, в которой я пытался использовать несколько методов, но пока ни один из них не работает корректно (хотя частично сшитые шрифты с книгой шрифтов частично работают). Подробности включены ниже.
- Есть ли рабочий метод для правильной визуализации глифов Powerline в iTerm2 на OSX 10.9.3?
- Должны ли символы Powerline правильно отображаться на веб-страницах? Есть идеи, почему их нет и как я могу это исправить?
Как работает рендеринг этих символов (на уровне системы / приложения)? Отличается ли это от приложения к приложению? В chrome, если текущий шрифт не содержит привязок для глифов, попытается ли chrome найти привязки в другом шрифте, присутствующем в системе, и использовать их? Есть ли способ предоставить привязки для этих символов Юникода на системном уровне, чтобы они отображались с использованием этого шрифта, независимо от используемого шрифта?
Персональные символы Юникода
Если я понимаю, как работают исправленные шрифты, совместимые с Powerline, они связывают масштабируемую графику с конкретными значениями в области частного использования Юникода:
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
Чтобы проверить глифы в терминале, я прочитал, что это должно работать:
echo -e "\ue0a0\ue0a1\ue0a2\ue0b0\ue0b1\ue0b2\ue0b3"
Однако он не работает для меня (OSX 10.9.3, iTerm2, zsh) даже с установленным шрифтом с исправлением линии электропередачи и iTerm2, настроенным для использования одного из этих шрифтов.
Я пробовал несколько способов установки пропатченных шрифтов:
FontBook & Prepatched Fonts
Я скачал шрифты из Localtog / powerline-fonts и установил их с помощью FontBook. На тех же страницах некоторые глифы отображаются, а другие нет. На других страницах ни один из глифов не отображается:
(источник: staticflickr.com )
(источник: staticflickr.com )
В iTerm2 (это происходит со всеми протестированными шрифтами Powerline), некоторые символы отображаются, но другие - нет:
(источник: staticflickr.com )
В macvim (терминал) с установленным vim-aviation некоторые символы отображаются, но некоторые отображаются неправильно:
(источник: staticflickr.com )
Fontconfig
Я удалил все исправленные Powerline шрифты, установил fontconfig с homebrew, установил шрифт powerline и восстановил кэш шрифтов:
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
Шрифт был обнаружен, и fontconfig сказал, что он установлен, однако он не появился в FontBook, и я не смог выбрать его в iTerm2.
После запуска я удалил шрифты, перезапустил fc-cache и удалил fontconfig.
В настоящее время я использую предустановленные шрифты, установленные в книге шрифтов, которые частично работают, но я надеюсь, что кто-то может помочь мне понять проблему немного лучше, чтобы я мог найти рабочее решение.
Обновить
Этот метод, кажется, заставляет все работать в iTerm2, хотя я все еще не уверен в проблемах рендеринга chrome / system.
FontForge
Установите fontforge с привязками Python:
brew install fontforge --with-python
Установите 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
Скачайте, исправьте и установите шрифт:
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.
имело для меня значение.