Итак, друзья, в моей жизни произошло поворотное событие. Эта своеобразная точка бифуркации, сулила мне или отказ от старого, удобного и привычного инструмента — infinality, в угоду новому freetype2, который, по моему мнению, не компенсировал все возможности infinality, или инерционное поедание кактуса со старым инструментом — infinality или вообще послать все эти ваши линупсы и уйти в ubuntu.
Началось всё с того, что в Manjaro Linux перестали работать репозитории bohoomil, собственно из которых, мною ставились патченные freetype2-infinality, fontconfig-infinality и cairo-infinality. И всё бы ничего, но с недавним обновлением в KDE, иксы отказывались стартовать, как выяснилось по причине несовместимости новых пакетов harfbuzz и harfbuzz-ico с патченными infinality файлами. Первым решением было заморозить обновление harfbuzz и harfbuzz-ico в /etc/pacman.conf, но со временем я понял, что это лишь временное решение и нельзя игнорировать проблему вечно.
Так же рекомендую прочитать статью продолжающую мой цикл о линукс под названием: Linux mint 19 Tara системные требования (Xfce, Cinnamon, Mate)
В поисках решения перечитал множество различных ресурсов и википедий, выбрав для себя алгоритм замены infinality на стандартный freetype2. Оисанное ниже в первую очередь подходит для Arch-based дистрибутивов, но при желании легко реализуется и в других дистрибутивах, с некоторыми отличиями лишь в установочных командах.
Первым делом ставим freetype2, соглашаясь на удаление infinality патченных версий, если у вас таковые были установленны, если нет, то пропускаем это шаг(если установлены ubuntu патчи, то тоже выполняем этот шаг):
yaourt -S --asdeps freetype2 cairo fontconfig
Далее устанавливаем нужные, для приведения к красивости, шрифты:
yaourt -S ttf-croscore ttf-dejavu ttf-liberation ttf-carlito ttf-caladea --noconfirm
В двух словах опишу что это за шрифты:
- ttf-croscore — шрифты из ChromeOS, они метрически совместимы с MS шрифтами, и уж точно не хуже их выглядят, содержат Arimo, Tinos, Cousine и прочие.
- ttf-dejavu и ttf-liberation — базовые шрифты в Manjaro, и есть по умолчанию, насколько я знаю в любом DE, если ошибаюсь исправьте в комментариях.
- ttf-carlito — метрически совместим с MS Calibri
- ttf-caladea — метрически совместим с MS Cambria
Ну и теперь переходим к самому важному шагу, выбираем метод рендеринга шрифтов. Начиная с freetype2 версии 2.7 появились следующие варианты:
- truetype:interpreter-version=35 # Classic mode (используется по умолчанию в freetype2 — 2.6)
- truetype:interpreter-version=38 # Infinality mode (более кастомизируемая настройка использует встроенные Infinality патчи)
- truetype:interpreter-version=40 # Minimal mode (используется по умолчанию в freetype2 — 2.7)
Меняется это редактированием выполнив команду:
sudo nano /etc/profile.d/freetype2.sh
Меняем нижнюю строку делая ее раскомментированной:
export FREETYPE_PROPERTIES="truetype:interpreter-version=38"
Да-да, тем самым мы выбрали infinality мод. Дефолтный вариант тоже не плох, можете попробовать, хотя в нём полностью игнорируются все инструкции горизонтального сглаживания и нет никакого субпиксельного сглаживания.
Теперь создаём и редактируем файл настроек, это мои настройки, опытным путём приведённые к понравившемуся мне виду, все параметры имеют комментарии, меняйте на своё усмотрение:
sudo nano /etc/fonts/local.conf
Приводя его к виду:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!--Этот файл должен быть тут: /etc/fonts/local.conf-->
<!--Составлено Malody для записи в блоге http://archlinux.org.ru/forum/topic/16691/ -->
<fontconfig>
<!-- Настройки отоброжения -->
<match target="font">
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign">
<!--hintslight - для более "полных" шрифтов, hintsfull - для более тонких -->
<const>hintslight</const>
</edit>
<edit name="lcdfilter" mode="assign">
<const>lcddefault</const>
</edit>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
<!--Отключение хинтинга для Bold шрифтов-->
<test name="weight" compare="more">
<const>medium</const>
</test>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
</match>
<!--Замена шрифтов MS на метрически совместимые ChromeOs https://wiki.archlinux.org/index.php/Metric-compatible_fonts -->
<alias>
<family>serif</family>
<prefer><family>Tinos</family></prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer><family>Arimo</family></prefer>
</alias>
<alias>
<family>sans</family>
<prefer><family>Arimo</family></prefer>
</alias>
<alias>
<family>monospace</family>
<prefer><family>Cousine</family></prefer>
</alias>
<!-- Map specific families to CrOS ones -->
<match>
<test name="family"><string>Arial</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Arimo</string>
</edit>
</match>
<match>
<test name="family"><string>Helvetica</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Arimo</string>
</edit>
</match>
<match> <!-- Метрически не совместимая замена -->
<test name="family"><string>Verdana</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Arimo</string>
</edit>
</match>
<match> <!-- Метрически не совместимая замена -->
<test name="family"><string>Tahoma</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Arimo</string>
</edit>
</match>
<match>
<test name="family"><string>Times New Roman</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Tinos</string>
</edit>
</match>
<match>
<test name="family"><string>Times</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Tinos</string>
</edit>
</match>
<match> <!-- Метрически не совместимая замена -->
<test name="family"><string>Consolas</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Cousine</string>
</edit>
</match>
<match>
<test name="family"><string>Courier New</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Cousine</string>
</edit>
</match>
<match>
<test name="family"><string>Calibri</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Carlito</string>
</edit>
</match>
<match>
<test name="family"><string>Cambria</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Caladea</string>
</edit>
</match>
</fontconfig>
Далее правим ~/.Xresources:
nano ~/.Xresources
приводим к виду:
Xft.dpi: 96
Xft.antialias: true
Xft.hinting: true
Xft.rgba: rgb
Xft.autohint: false
Xft.hintstyle: hintslight
Xft.lcdfilter: lcddefault
После чего заставляем xrdb прочесть наш конфиг:
xrdb -merge ~/.Xresources
Если используете Gnome, Mate, Cinnamon, Budgie, то измените в настройках сглаживание с grayscale на RGBa. После всего проделанного перезагружаемся или просто убиваем иксы ctrl+alt+backspace.
Принципиально не буду приводить то, как выглядят шрифты у меня, во первых потому, что сколько не сомтрел скрины в интернетах, мне всегда не нравится как выглядит, а когда делаю тем же способом, то на моём мониторе выглядят пристойно, потому дабы не отпугивать вас, просто делайте и настраивайте. А во вторых, у всех свои вкусы, и многим мои скрины придутся не по нраву, а моя неокрепшая психопатическая сущность, начнёт грубить в ответ, посему — хотите попробовать мои настройки пробуйте, если у вас не получается довести до приемлемого, лично вам, внешнего вида, значит кривизна ваших рук, имеет принципиальное не соответствие с кривизной вашей системы, старайтесь и у вас получится Ищущий да обрящет.
Гик, хакинтошник, линуксоид, считаю себя flutter разработчиком. Завёл канал, в котором изначально хотел показывать как я с нуля и до бесконечности погрузился в дорвей тематику, а в итоге просто рассказываю о себе, своих успехах и неудачах в сайтах, приложениях, офлайн проектах. Добро пожаловать в
Ничего особо не изменилось. Как были шрифты говно так и остались… Manjaro kde 18.0
Сложно ответить на подобный комментарий 🙂 Мне этого было достаточно для моего вкуса, поищите варианты получше если найдёте, поделитесь с радостью пополню свою копилку знаний
xrdb -merge ~/.Xresources
xrdb: No such file or directory
xrdb: can’t open file ‘/home/kurwa/.Xresources’
Делаю все как написано, чяднт?
а вы nano ~/.Xresources делали?
без sudo?
Вы же сначала этот файл создаете с указанным содержимым, а потом его применяете
да, файл лежит на месте, в домашней папке
Xft.dpi: 96
Xft.antialias: true
Xft.hinting: true
Xft.rgba: rgb
Xft.autohint: false
Xft.hintstyle: hintslight
Xft.lcdfilter: lcddefault
Эти параметры можно выставить через GUI настройки вашего DE
Спасибо, разобрался. Неправильно выставил настройки. Спасибо за инструкцию!
Лучше бы написали, как сделать человеческую прокрутку роликом мыши без модулей и танцев с бубном
Как на Mint19 поставить?
Автору спасибо!
Шрифты стали ГОРАЗДО ЛУЧШЕ!!
Правда еще немного тошнотворные шрифты остались в наименованиях вкладок браузеров. Но в целом очень и очень даже неплохо!
Автор — суперкрасавчик!
Всё стало обалденно красиво, прям большущее спасибо!
Система Arch+i3
Извините, ваша инструкция ещё актуальна в 2021 году?
У меня получается так:
xrdb -merge ~/.Xresources
xrdb: No such file or directory
xrdb: can’t open file ‘/home/user/.Xresources’
Заполнял содержимое файла через nano ~/.Xresources без sudo. Файл Xresources создался и лежит в домашней папке. Даже перезагружал систему. Но всё равно xrdb не видит файл ~/.Xresources
В DE MATE выставлены следующие настройки:
Точек на дюйм (DPI): 96
Сглаживание: полутона
Уточнение: Слабое
Порядок субпикселов: RGB
Других настроек шрифтов нет.
Спасибо!
К сожалению в настоящее время нет возможности проверить(
А зачем устанавливать Freetype2 если он уже установлен в системе?
Когда писалась статья возможно ещё не был)
Понятно,ещё хотел спросить вот эти несколько шрифтов ttf-croscore ttf-dejavu ttf-liberation ttf-carlito ttf-caladea —noconfirm они обязательны? Как их в Debian добавить если я твоей инструкцией воспользуюсь.
А ты уверен, что у тебя плохо отрисовываются шрифты?
Статья древняя, и сейчас со шрифтами во всех линупсах вроде бы получше, возможно уже и не стоит ничего ломать?
Уверен,у меня все дистрибутивы настроены под себя,в сети множество инструкций но твоя более менее правдоподобная в частности твой конфиг мне понравился у меня вроде такого в KDE Neon и в LXLE сглаживание хорошо поднимал,сейчас у меня 2-й системой Deepin установлен и мой способ там уже не работает,поэтому хотел твоей методикой воспользоваться.
Походу в Deepin нет Freetype,там своё что-то.По этому адресу /etc/profile.d/freetype2.sh нет такого исполняемого файла.А как вообще устанавливается эта конфигурация?