LINUX.ORG.RU

Жирнее рендерить шрифты как в macos

 , , ,


8

4

Как заставить freetype рендерить шрифты жирнее как в macos?

Глаза устают читать тонкие шрифты, особенно напрягают тонкие серые на некоторых WEB страницах.

Пробовал менять режим сглаживания (чернобелое, варианты субпиксельного). Ставил различные версии freetype (infinality ultimate5, remix, v35 only) - не помогло. Infinality еще тоньше рендерит.

Монитор 4K, 28". Дистрибутив - arch.

В интернетах проблема упоминается, но не нашел решения.

★★★★
Ответ на: комментарий от DumLemming

Шрифты поставь как в гейоси, отпустит. SF Pro называются

Не помогло. В Idea фирменный JetBrains моно по-разному рендерится. В линуксе medium как в макси regular.

А совет из первого комментария помог, разбираюсь как оно работает.

exst ★★★★
() автор топика
Последнее исправление: exst (всего исправлений: 1)
Ответ на: комментарий от exst

Там начертания разные есть - thin не надо. Ну и надо смотреть что там на сайте, не верю что шняга везде. Если где свой загружаемый шрифт тонкий - так это не у тебя проблема

DumLemming ★★★
()
21 ноября 2023 г.
Ответ на: комментарий от e1nste1n

Спасибо, стало гораздо приятнее читать мелкий текст. Теперь правда возникла проблема - в некоторых приложениях автохинтер заедает даже иконки. Вот так к примеру выглядят иконки в VS Code после запуска с no-stem-darkening=0: https://user-images.githubusercontent.com/29492157/282594039-d72db391-77f1-488e-bbe5-7516ecf32f21.png.

Пытался покрутить значения darkening-parameters - ничего не изменилось. Применение no-stem-darkening=0 именно к type1, truetype - не работает. Настроил embolden через ручной фильтр по размеру шрифта в локальном fontconfig (https://github.com/maximilionus/configs/blob/master/linux/fonts/local.conf) - так все хромиум-изделия игнорируют такие конфигурации. Честно говоря уже закончились варианты.

maximilionus
()
Ответ на: комментарий от rtxtxtrx

У меня так-же 2560x1440 на 27", без масштабирования. Кеды используют subpixel сглаживание для шрифтов, в то время как гном на grayscale, поэтому и читабельность другая. Глаза уже привыкли к grayscale и на субпиксельном отчетливо вижу радугу цветов при любом фильтре, так что хотелось бы остаться на первом. Но вот от мелких шрифтов глаза жутко устают - на Маках как раз с этой проблемой очень хорошо научились бороться за счет ожирнения мелких шрифтов. Хотелось бы достичь близкого результата.

maximilionus
()
Ответ на: комментарий от maximilionus

В KDE можно просто отключить субпиксельное сглаживание в настройках и получить тот же grayscale без радуги, не так ли? И вопрос встречный: у Вас dpi = 109, радуги нет в grayscale, хорошо. А размытости шрифтов в gtk4 не наблюдаете?

anonymous
()
Ответ на: комментарий от anonymous

Да, буквально сейчас запустил LiveCD с KDE оболочкой и наделал скриншотов в огнелисе и хромиуме для сравнения 1к1 с Гномом, так же отключив субпиксельное сглаживание. Разницы к сожалению вообще никакой, разве что шрифты разные, а вот их отрисовка везде одинаковая.

DPI (PPI) в моем случае полагаю округляется до стандартных 96. Проверил:

$ xrdb -query | grep dpi
Xft.dpi:	96

Мыльность шрифтов GTK4 вроде как уже давно решили как исправить, вроде как и больше не нужно никаких ручных вмешательств в виде gtk-hint-font-metrics=1. Лично я никакой размытости больше не наблюдаю на Gnome 45.1.

maximilionus
()
Ответ на: комментарий от maximilionus

И правда странное округление: sqrt (2560^2+1440^2)/27 = 109. Ну да ладно, мыла не видите, уже хорошо. Но все же насколько я понял, этот gtk-hint суть полумера. Реально же нет мыла при grayscale только на hidpi, то есть >= 200. Достаточно сравнить скрины той же Ubuntu 22.04 (шрифты четкие) и 23.10 (о ужас). Возможно, я ошибаюсь.

anonymous
()

я так и не нашел сравнения макось vs другие чтобы увидеть насколько жирнее. Вот пост с реддита 2022 года по-моему макось шрифт еще тоньше других

https://www.reddit.com/media?url=https%3A%2F%2Fi.redd.it%2F5hqcqkkkyu991.png

что интересно даже sfpro display отличается немного от sfpro text

monkdt
()
Ответ на: комментарий от anonymous

Да, начитался уже, что grayscale нормально работает только на HiDPI (200+) мониторах, что в моем случае совсем отпадает.

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

maximilionus
()
Ответ на: комментарий от monkdt

Вот тут есть отличное сравнение сразу же по скриншотам. Статья старая, но в плане рендера ничего особо не поменялось. Все больше склоняюсь к мысли, что все дело именно в шрифтах, а не в чем либо ином.

maximilionus
()
Ответ на: комментарий от maximilionus

Регулировка darkening-parameters должна помочь, с параметрами как в первом комментарии у меня все нормально, подобраны как раз после того как заметил влияние на шрифтовые иконки. Правда chromium* приложениями не пользуюсь, не знаю что там.

e1nste1n ★★★★★
()
Ответ на: комментарий от e1nste1n

Действительно, спасибо за наводку. Решил внимательно почитать документацию по этому параметру и настроить все под себя. В итоге у меня получилось добиться отличного ожирнения средних шрифтов, при этом почти не искажая иконки в том же VS Code.

Параметры:

FREETYPE_PROPERTIES="autofitter:no-stem-darkening=0 autofitter:darkening-parameters=500,100,1000,400,1500,300,1550,0"

Возможно получится найти еще более удачное сочетание, но пока что остановлюсь на этом, мои глаза довольны.

maximilionus
()
Ответ на: комментарий от maximilionus

Решил и вовсе отключить затемнение для совсем мелких шрифтов - теперь артефактов вообще не осталось, все идеально.

FREETYPE_PROPERTIES="autofitter:no-stem-darkening=0 autofitter:darkening-parameters=500,0,1000,400,1500,350,1700,0"
maximilionus
()
Ответ на: комментарий от e1nste1n

Да, первый раз как раз и не хотел экспериментировать, так как увидел данное предписание. Потом все же решил попробовать сделать все по своему и… Оно сработало. Чуть попозже выложу еще пару скриншотов до-после.

maximilionus
()
Ответ на: комментарий от rtxtxtrx

Вполне согласен насчет винды. Она уничтожает любую индивидуальность шрифтов в максимальную угоду их читабельности на максимально возможном спектре экранов. FreeType в Линуксах вырисовывает все максимально точно, но точность это не всегда идеальное решение.

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

maximilionus
()
Ответ на: комментарий от monkdt

Пожалуйста. В целом оно уже на гитхабе, в моей единой коллекции конфигов - вот тут.

Создавать для одной строчки целый репозиторий это звучит немного жирновато как по мне. Разве что как Gist выложить. Подумаю над этим чуть попозже.

maximilionus
()
Ответ на: комментарий от anonymous

Посмотри на название переменной, особенно ее начало - "no-*". Эта функция включается только при значении 0 и стоит по умолчанию в 1, что и соответствует значению «отключено».

Никаких дополнительных изменений кроме наличия этой переменной в /etc/environment или других подобных местах исполнения на запуске - не требуется.

maximilionus
()
13 июня 2024 г.
Ответ на: комментарий от maximilionus

Совсем забыл сюда написать. Проект с автоматизированными надстройками я опубликовал на гитхабе. Для последних Федор и RHEL пакеты уже есть в COPR, всем остальным пока что только установка через скрипт. Примеры со сравнением разных режимов и референсом на macOS тоже можно найти по ссылке из заголовка README.

maximilionus
()