воскресенье, 15 февраля 2015 г.

Настройка infinality для сглаживания шрифтов

Infinality - это набор патчей для библиотеки freetype, улучшающий рендеринг шрифтов в линуксе. В пакете присутствуют несколько предустановленных схем тонкой настройки рендеринга, имитирующих технологию рендеринга в различных ОС.

На момент написания статьи в оффициальном репозитории ubuntu отсутствовал. Для установки необходимо добавить репозиторий ppa:no1wantdthisname/ppa. В процессе настройки по инструкции (например, отсюда) выявился ряд проблем, о которых речь пойдет ниже.

Мне захотелось отключить antialiasing для ttf шрифтов определенного размера, оставив только hinting. Так мне больше нравится отображение, глаза меньше устают. В процессе выяснилось, что установка пропатченной libfreetype из ppa криво рендерит шрифты с отключенных antialiasing. Решение было следующее, установить пакет fontconfig-infinality из ppa, а libfreetype использовать из репозитория убунты (на момент настройки была установлена kubuntu 14.04, librfreetype в официальном репозитории имеет версию 2.5.2-1ubuntu2.2).

Полный порядок установки и настройка:

  1. sudo add-apt-repository ppa:no1wantdthisname/ppa Добавляем репозиторий с infinality.
  2. sudo aptitude update
  3. sudo aptitude download fontconfig-infinality Скачиваем пакет. Из репозитория не устанавливаем, не выполняем upgrade, т.к. нам не нужно обновлять libreetype оттуда.
  4. sudo ppa-purge ppa:no1wantdthisname/ppa Удаляем репозиторий, больше он нам не понадобиться.
  5. sudo dpkg -i fontconfig-infinality
  6. sudo /etc/fonts/infinality/infctl.sh setstyle Выбиаем infinality.
  7. sudo mcedit /etc/profile.d/infinality-settings.sh Устанавливаем переменной USE_STYLE значение WINDOWS7. Настройка Xft для xrdb находится тоже в этом файле. Для Xft я использую настройки по умолчанию.
  8. Теперь нужно отключить antialiasing для ttf шрифтов определенного размера. Добавляем в файл /etc/fonts/infinality/conf.src/61-group-tt-rendering-inf-7-xp.conf (или другой, в зависимости от стиля, этот для win7, infinality и xp) следующий код:
  9.        <match target="font">
                    <test name="font_type">
                            <string>TT Instructed Font</string>
                    </test>
                    <test compare="more_eq" name="pixelsize" qual="any">
                            <double>5</double>
                    </test>
                    <test compare="less_eq" name="pixelsize" qual="any" >
                            <double>17</double>
                    </test>
                    <edit mode="assign" name="antialias">
                            <bool>false</bool>
                    </edit>
            </match>




  10. Перезагружаемся и наслаждаемся
ps При установленном пакете infinality настройки из файла ~/.config/fontconfig/fonts.conf игнорируются

ps Решение проблемы загрузки mdm в mint http://www.infinality.net/forum/viewtopic.php?f=4&p=2148 

UPD 30.10.2020
Поддержка скриптов infinality разработчиком прекращена, в ppa репозитории пакет больше не обновляется. Но в kubuntu (последняя версия 20.04) по-прежнему меня не устраивают системные настройки шрифтов. В связи с чем, содержимое пакета из репозитория решено заложить в архив для последующего использования в случае удаления репозитория. В целом инструкция выше остается актуальной с п. 6, а установку произвести можно из архива.


Используемые ресурсы:

http://exlmoto.ru/linux-ttf-rendering/
http://www.webupd8.org/2013/06/better-font-rendering-in-linux-with.html
https://www.linux.org.ru/forum/desktop/10783674

Комментариев нет:

Отправить комментарий