LINUX.ORG.RU

Разные шрифты в Qt- и GTK-приложениях

 , , , ,


0

3

В арчике разные шрифты в Qt- и GTK-приложениях, хотя настройки вроде бы одни и те же. В Qt-приложениях шрифт гораздо толще. Также было замечено, что Gtk почему-то не дает выставить жирный шрифт: так никакой разницы между Source Sans Pro Bold и Source Sans Pro Regular 10 нет.

Шрфит везде - Source Sans Pro Regular 10. DPI - 96. Если это имеет значение, разрешение экрана - 1366х768, диагональ - 12.5".

DE - XFCE.

Настройки шрифтов в XFCE(XSETTINGS)

Xresources

Платформа Qt - qt5ct. fonts.conf

Для сравнения:

1)GTK

2)Qt

★★

Последнее исправление: permafrost (всего исправлений: 1)

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

Source Sans Pro полностью otf. Noto Sans и Ubuntu - ttf. Могу попробовать на них переключится

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

Выставил по твоему совету ttf-шрифт, а именно Ubuntu Regular 10. Лучше чем было, но все равно видно, что шрифты рисуются по-разному. С Noto Sans ситуация такая же, как и с Ubuntu Regular

gtk

qt

P.S. В gtk почему-то нет разницы в отрисовке между Ubuntu Light, Regular и Medium. И gtk почему-то не дает выставить, например, Italic. Может быть как-то шрифт переопределен в теме gtk? С picom(compton) я, например, замечал, что с одними темами есть отрисовка теней композитором, а с дргуими - нет

permafrost ★★
() автор топика
Ответ на: комментарий от permafrost
cat '/etc/environment'
#
QT_QPA_PLATFORMTHEME=gtk2
QT_AUTO_SCREEN_SCALE_FACTOR=0
############################################################
cat '/etc/profile.d/freetype2.sh'
#
export FREETYPE_PROPERTIES="truetype:interpreter-version=35"
############################################################
cat '/etc/fonts/local.conf' 
#
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
       <edit name="antialias" mode="assign">
           <bool>true</bool>
       </edit>
       <edit name="autohint" mode="assign">
           <bool>false</bool>
       </edit>
       <edit name="hinting" mode="assign">
           <bool>true</bool>
       </edit>
       <edit name="hintstyle" mode="assign">
           <const>hintfull</const>
       </edit>
       <edit name="lcdfilter" mode="assign">
           <const>lcddefault</const>
       </edit>
       <edit name="rgba" mode="assign">
           <const>rgb</const>
       </edit>
       <edit name="dpi" mode="assign">
            <double>101</double>
       </edit>
</fontconfig>
##################################################
ls /etc/fonts/conf.d
#
10-hinting-full.conf
11-lcdfilter-default.conf
50-user.conf
51-local.conf
57-dejavu-sans.conf
57-dejavu-sans-mono.conf
##################################################
cat '~/.Xresources'
#
Xft.dpi:        101
Xft.antialias:  true
Xft.rgba:       rgb
Xft.hinting:    true
Xft.hintstyle:  hintfull
Xft.lcdfilter: lcddefault
Xft.autohint: false
###################################################
cat '~/.gtkrc-2.0'
#
gtk-theme-name="Arc"
gtk-icon-theme-name="evolvere-blue-folders-vivid"
gtk-font-name="Verdana 11"
gtk-cursor-theme-size=18
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintfull"
gtk-xft-rgba="rgb"
####################################################
cat '~/.config/gtk-3.0/settings.ini'
#
[Settings]
gtk-theme-name=Arc
gtk-icon-theme-name=evolvere-blue-folders-vivid
gtk-font-name=Verdana 11
gtk-cursor-theme-size=18
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull
gtk-xft-rgba=rgb
anonymous
()
Ответ на: комментарий от permafrost

Ну там все видно какие конфиги читаются. Помимо тех что выше говорили dconf, Kvantum, qt5ct/qss, qt5ct/colors/airy.conf

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

Сверху уже ссылку давал

https://developer.gnome.org/gtk3/stable/chap-css-properties.html

В ~/.config/gtk-3.0/gtk.css добавьте нужный параметр к нужному виджиту

например для всех, изменения будут при перезагрузке gtk3 приложения(закрыть, открыть)


/*
Здесь можно ввести любое CSS-правило, понятное GTK+.
*/

* { font-style: italic;
    font-stretch: ultra-condensed;
    font-weight: 600;
    font-size: 14px; }

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

Те же параметры можно добавить в тему gtk3 (ее css). Это не действует на gtk2 ( там свои параметры ) и на qt ( там тоже свои css и параметры). На тунар тоже сразу не подействует так как он в фоне висит, у него команда есть для перезагрузки

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

Радуга-то должна была пропасть.

Может глаз уже замылился, но вроде все так же.

Возможно ли что цвет шрифта в темах различен?

Вот тоже так кажется. В gtk шрифт серый что ли, а qt - темнее и чуть толще кажется

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

Понял о чем ты. Спасибо. Сам использовал gtk.css, чтобы интерфейс подправить.

Вообще имел в виду именно через XSETTINGS, но я уже сам выше ответил на свой вопрос ссылкой на гномовский гитлаб

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

Возможно ли что цвет шрифта в темах различен?

Но вообще выставлял QT_QPA_PLATFORMTHEME=gtk2 - шрифты такие же оставались

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

Нашел еще такой багрепорт

Но решение оттуда мне не помогло. Да и, как понимаю, создание файла в /etc/fonts/local.conf эквивалентно ~/.config/fontconfig/fonts.conf, только последний для юзера

permafrost ★★
() автор топика

Заметил, что степень схожести шрифтов в gtk и qt зависит от шрифта. Так, по моим наблюдением, наиболее однородно выглядит Noto Sans, Roboto показали себя неплохо. Мои любимые Source Sans Pro дают в qt похожий шрифт только, если включить autohinting в fonts.conf

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

Поставил из реп ttf и otf версии fira. В otf-верcии происходит сильное утолщение шрифта. Вид шрифтов в ttf гораздо однороднее. Получается, есть проблема ttf vs. otf, как ты написал ранее. Почему так?

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

Xft/DPI для DPI=96 должен быть 98304, потому что измеряется в 1/1024 частях от DPI.

В Chromium можно выставить флаг --force-device-scale-factor=1.3.

У меня стоит нативный DPI на арче, проблем не замечал пока ни с чем кроме Pluma(текстовый редактор из MATE). Если не стоит нативный DPI, то смысла в rgb субпиксельном хинтинге нету.

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

У меня DPI 69, шрифты Source Sans Pro 12, BRG Hintfull с lcddefault фильтром. Qt с qt5ct gtk темой. Шрифты везде выглядят одинаково(за исключением хромиума, разумеется, он игнорирует fontconfig). Но у меня стоит freetype2-cleartype.

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

Xft/DPI для DPI=96 должен быть 98304, потому что измеряется в 1/1024 частях от DPI.

Ну вроде и так по докам, но у меня все через жопу сработало. Думаю, в XFCE реализация такая, что она уже автоматом делить на 1024, хотя хз

У меня стоит нативный DPI на арче, проблем не замечал пока ни с чем кроме Pluma(текстовый редактор из MATE). Если не стоит нативный DPI, то смысла в rgb субпиксельном хинтинге нету.

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

У меня DPI 69, шрифты Source Sans Pro 12, BRG Hintfull с lcddefault фильтром. Qt с qt5ct gtk темой. Шрифты везде выглядят одинаково(за исключением хромиума, разумеется, он игнорирует fontconfig).

Что за DE? Покажи настройки, пжл. Source Sans Pro ttf- или otf-версия?

Но у меня стоит freetype2-cleartype.

Краем уха слышал про cleartype. Можешь прояснить в чем прикол?

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

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

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

Inside OTF files can be TrueType or «CFF» fonts. The code in the freetype2 library for rendering CFF is different from the one for TrueType. The CFF rendering code has a «darkening» feature that can be enabled for small sizes of fonts. This darkening feature is normally disabled on Linux but I guess Qt has it enabled by mistake.

If you are interested in too much details:

About why this darkening feature exists, on Windows and OS X and Android and ChromeOS the fonts are rendered with gamma correction. The gamma correction makes text look super light at small sizes and that’s why there’s that darkening feature in the rendering code.

On Linux this darkening should normally be off because the gamma correction is missing. This is broken about Linux font rendering. If you are interested in this gamma correction stuff, this article on the freetype2 website explains it:

https://www.freetype.org/freetype2/docs … neral.html

There’s a ten year old bug report about the broken gamma correction here:

https://gitlab.freedesktop.org/cairo/cairo/issues/2

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

Изначально был lcddefault. Посмотри в заглавном посте мои конфиги

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

Это в /etc/enviromentcff:no-stem-darkening=1 или куда? Можешь просто команду написать, пожалуйста, что и куда. Буду признателен

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

Понял, спасибо. Добавил cff:no-stem-darkening=1 в /etc/profile.d/freetype2.sh. Без видимых изменений.

Решил эксперимента ради выставить cff:no-stem-darkening=0 и свершилось чудо! Впервые появились какие-то изменения - Source Sans Pro Regular стал везде одинаково толстым и похожим! Но, как понимаю, Source Sans Pro Regular должен выглядеть тоньше)

скриншот

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

Большое тебе спасибо и добра. Постараюсь уже дальше сам как-нибудь подробнее разобраться.

Надо бы багрепорт написать. Только куда? На какой пакет в Arch? Qt5-base? Или лучше сразу на багтрекер Qt?

Также обнаружил, что цвет шрифта задается в темах сss и kvconfig для Qt и GTK соответственно. Из-за этого тоже была разница в восприятии. Исправил этот момент. Но все есть небольшое ощущение, что шрифты немного разные. Не знаю, это мне кажется или все же рендеринг действительно разный. Тем не менее, все стало лучше и яснее. Еще раз спасибо. Кстати, очень понравились шрифты fira. Чем-то близки к Sourсe Sans. Fira Code с лигатурами просто божественный.

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

slackware 14.2 current / GTK.x font trouble

решение вставило :о)

спасибо

sunjob ★★★★
()
Ответ на: комментарий от papin-aziat

У меня есть кое-какое объяснение этому феномену, но в двух словах изложить будет не просто

поделитесь мыслями? спасибо

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

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

значительный процент людей совершенно слепы к ШГ, для них просто этого явления не существует, они будут месяцами пилить иконки и цветовую гамму, но останутся совершенно слепы к ШГ

Оговоримся сразу, что проблема иконок и цвета, вероятно, имеет тот же источник, вернее фактор, а именно: напряжение, просто напряжена другая часть мозга.

Разумеется, такая мысль мне в голову прийти не могла (я не настолько башковит), это результат чтения Бейтса (американский офтальмолог начала 20-го века, не признанный наукой).

Он утверждает, что подслеповатый глаз, в отличие от здорового, всегда пялиться в объект, пытаясь разглядеть детали, а источником такого поведения является «напряжение мозга», которое случается всегда, когда человек начинает «тяжело относиться к вещам». (лучше почитать оригинал, чтобы не казалось, что я брежу)

Итак, напряжённый мозг выискивает несущественные детали и придает им колоссальное значение, тогда как нормально функционирующий мозг остаётся равнодушным к «мелочам» и просто «не видит» проблемы.

Далее мои наблюдения. Так как меня подобные вопросы живо интересуют, я всегда опрашиваю людей ИРЛ, когда бывает оказия, что они думают об интерфейсе компьютера или смартфона. Большинство не думает ничего, они просто считывают смыслы, их беспокоят только решения, им совершенно начхать на ШГ, иконки и гамму.

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

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

Как-то так для начала, формат не позволяет обсудить все «но», да и сами идеи Бейтса, но покумекать в эту сторону однозначно стоит.

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

дизайно-фашист :о)

действительно, в ситуации когда жизнь «твоей» задницы зовисит от «решения» в нажатии на «кнопку», то уж точно пофигу на «весь остальной дизайн»... и на кнопку тоже ... (другое дело что многие так и живут в бешенном-тонусе, драке за место под солнцем, где человеку-то и места нет)

с другой стороны, данная проблема совсем не «о двух концах», а многомерна...

да и потом... :о) для большинства «пофигистов» комп не является «рабочим инструментом», поэтому и такое «спокойное» отношение, а вот все, кто работает на «нем», естественно, будут любой изьян замечать и пытаться его исправить (как ни как «РАБОЧАЯ консоль», инструмент... тут и отношение к нему и к тому, как он влияет на здоровье, атмосферу вокруг...)

ну а что? полне рабочая версия! не вызывает неприятия и логично вплетается в миро-понимание и свои ощущения, мысли.

спасибо

sunjob ★★★★
()
Последнее исправление: sunjob (всего исправлений: 6)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.