Шрифти з виправленнями Powerline на OSX 10.9.3 - iTerm2 та Chrome


18

Я шукаю робоче рішення для візуалізації символів живлення на OSX в iTerm2 та Chrome. Навколо мене є багато документації, яку я намагався використати декількома методами, але, здається, поки що жоден не працює належним чином (хоча попередньо встановлені шрифти з шрифтом книги частково працюють). Деталі включені нижче.

  1. Чи існує робочий метод отримання правильних візуалізаційних гліфів в iTerm2 на OSX 10.9.3?
  2. Чи правильно відображаються електролінії електролінії на веб-сторінках? Будь-яка ідея, чому їх немає і як я можу це виправити?

Як працює візуалізація цих символів (на рівні системи / програми)? Чи відрізняється вона від програми до програми? Якщо в хромі, якщо поточний шрифт не містить прив’язок для гліфів, чи Chrome спробує знайти прив’язки в іншому шрифті, присутніх у системі, і використовувати їх? Чи є спосіб надати прив’язки для цих символів unicode на системному рівні, щоб вони відображали цей шрифт незалежно від шрифту, який використовується?

Unicode Персонажі приватних областей

Якщо я розумію спосіб роботи сумісних з виправленими шрифтами живлення, вони прив'язують масштабовану графіку до певних значень у зоні приватного використання 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

Щоб перевірити гліфи в терміналі, я прочитав, що це має працювати:

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

Однак для мене це не працює (OSX 10.9.3, iTerm2, zsh), навіть із встановленим шрифтом з виправленою лінійкою та iTerm2, налаштованим на використання одного з цих шрифтів.

Я спробував кілька методів встановлення виправлених шрифтів:

FontBook & попередньо підібрані шрифти

Я завантажив шрифти з Localtog / powerline-шрифтів та встановив їх за допомогою FontBook. На тих же сторінках деякі з гліфів відображаються, а інші - ні. На інших сторінках жоден із гліфів не відображає:

Тема Агностера
(джерело: staticflickr.com )

Документація електропередач
(джерело: staticflickr.com )

У iTerm2 (це відбувається із усіма тестованими шрифтами живлення), деякі символи відображаються, але інші:

iTerm2 & zsh
(джерело: staticflickr.com )

У macvim (терміналі) із встановленою vim-airline частина символів відображається, а деякі відображаються неправильно:

vim-airline
(джерело: staticflickr.com )

Fontconfig

Я вилучив усі шрифти, зафіксовані на електролінії, встановив fontconfig з домашньою мовою, встановив шрифт 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-кеш і видалив fontconfig.

Наразі я використовую встановлені в шрифті шрифти, які частково працюють, але сподіваюся, що хтось може допомогти мені зрозуміти проблему трохи краще, щоб я міг знайти робоче рішення.

Оновлення

Цей метод, здається, змушує все працювати в iTerm2, хоча я все ще не впевнений у проблемах хромування / рендерингу системи.

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

Відповіді:


12

Просто встановіть шрифт Input Mono , оснащений повною підтримкою лінії живлення.

Для того щоб працювати наступне, шрифт Input Mono повинен бути версії 1.1. Ви можете перевірити версію шрифту, перейшовши Font Book → View → Show Font Infoта перегляньте номер версії.

З Terminal.app працює з коробки. Просто виберіть шрифт і ви готові.

За допомогою iTerm2 ви повинні змінити пару речей:

  • Перейдіть до Налаштування → Профілі → Текст і зніміть прапорець `Використовуйте інший шрифт для тексту, що не належить до ASCII.
  • Зверху натисніть Change Fontта виберіть Input Mono. Додатково вам доведеться змінитись Character Spacing → Verticalдо 110%. Здається, що Термінал та iTerm2 надають інтервал між символами.

Якщо зняти прапорець, Use a different font for non-ASCII text.для мене все змінилося .
camomileCase

2

Можливо, ви не оновлювались bash. OS X поставляється з bash < 4, тому ви не можете printfабо echo -eunicode коди.

Кроки для оновлення за bashдопомогою homebrew:

  1. brew install bash
  2. Знайдіть приставку bashвстановленого homebrew, моя була /usr/local/Cellar/bash/4.3.30/, тому мій bash binary був /usr/local/Cellar/bash/4.3.30/bin/bash.
  3. sudo (vim|nano|emacs|etc) /etc/shells
  4. Отримайте зазначений шлях bash та додайте його до кінця списку (або замініть /usr/bin, якщо ви дійсно сміливі.)
  5. chsh
  6. Змініть Shell:лінію відповідно до вашого bashшляху.
  7. Перезапустіть свій термін.

І вам слід виправитись.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.