Вы здесь

[частично решено]Разный размер шрифта в GTK-приложениях (KDE5), почему?

Доброго времени суток.
Сижу под Gentoo, KDE5. В повседневной работе использую GIMP и VirtManager. Оба являются GTK приложениями, GIMP чисто второго поколения, а VirtManager - чисто третьего. Везде в системе установил шрифт 10 размера (соответственно в Widget Style of GNOME/GTK Applications тоже).
~/.config/gtk-3.0/settings.ini


[Settings]
gtk-font-name=Noto Sans Regular 10
gtk-theme-name=Breeze
gtk-icon-theme-name=breeze
gtk-fallback-icon-theme=Adwaita
gtk-cursor-theme-name=breeze_cursors
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-menu-images=1
gtk-button-images=1
gtk-primary-button-warps-slider=0
gtk-cursor-blink = 0

~/.gtkrc-2.0

# File created by KDE Gtk Config
# Configs for GTK2 programs

include "/usr/share/themes/Breeze/gtk-2.0/gtkrc"
style "user-font"
{
font_name="Noto Sans Regular"
}
widget_class "*" style "user-font"
gtk-font-name="Noto Sans Regular 10"
gtk-theme-name="Breeze"
gtk-icon-theme-name="breeze"
gtk-fallback-icon-theme="Adwaita"
gtk-cursor-theme-name="breeze_cursors"
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-menu-images=1
gtk-button-images=1
gtk-primary-button-warps-slider=0
gtk-cursor-blink = 0

Ну, а то, что имею по итогу - выглядит вот так:
screenshot
Похоже, что разница в размере шрифта - в 4 пункта.

Есть ещё глюк в огнелисе - там размер шрифта в некоторых местах отличается раза в два или в три, например (везде в настройках стоит 10):

В чём проблема?

ps Правильный размер - в GTK2 (он такой же как и в QT).
Разрешение монитора - 128 dpi (задано в xorg.conf).

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

—

Чем больше юзерфрендли, тем сложнее юзать.

Та нет, если говорить только про GTK2 и GTK3, то сами они ничено не правят. Всё дело в dpi.
У меня выставлен физический размер экрана:
/etc/X11/xorg.conf.d/10monitor.conf

Section "Monitor"
Identifier "LVDS-1"
DisplaySize 381 214
EndSection

Соответственно X.org выставляет dpi в 128
Но, GTK3 игнорирует это и рисует шрифты исходя из 96 dpi

Кто виноват и что делать?

В общем, проблему для GTK3 решил:
~/.bash_profile

export GDK_DPI_SCALE=1.33

Теперь осталось найти решение для веба.

sspphheerraa написал:
...Соответственно X.org выставляет dpi в 128
Но, GTK3 игнорирует это и рисует шрифты исходя из 96 dpi

Кто виноват и что делать?

A сам явно прописывать dpi не пробовал? Может EDID настройки сбивает?..

Вроде бы 96 - это значение по умолчанию, у тебя ничего не задано, вот и берет 96. Как вариант - попробуй сначала явно задать dpi в команде запуска Х'ов.

Для контроля покажи

xdpyinfo | grep -E 'dimensions|resolution'

Указание физического размера экрана и задаёт dpi жёстко. Проблема, как оказалось, тут намного глубже, чем кажется:
https://bugs.freedesktop.org/show_bug.cgi?id=98909
https://bugzilla.gnome.org/show_bug.cgi?id=757142
https://bugzilla.mozilla.org/show_bug.cgi?id=1269274
Последние две - "WONTFIX", другими словами - GTK/GNOME-щики начинают класть на X.org (из-за переориентации на Wayland?).
Плохо.

sspphheerraa написал:
Указание физического размера экрана и задаёт dpi жёстко.

Только если у тебя выключен EDID! Типа

Option     "NoDDC"

Потому я и просил показать, чтобы убедиться...

sspphheerraa написал:
Проблема, как оказалось, тут намного глубже...Плохо.

Да уж...

Конечно, полтора года прошло, но вдруг пригодится.
Добрый дядя Джузеппе написал патч, коим я успешно пользуюсь.
Решение:

  1. Создаём локальный оверлей, если его (или сетевого) у вас нет
  2. Копипастим туда /usr/portage/x11-libs/gtk+
  3. В files кладём вышепомянутый патч под именем, напр. gtk+-3.x-dpi.patch
  4. В ебилде добавляем в раздел src_prepare() такие строки:

    # gtk3 by default sets dpi=96
    # but there is a patch: https://bugzilla.gnome.org/attachment.cgi?id=344123
    eapply "${FILESDIR}"/${PN}-3.x-dpi.patch
  5. Сохраняем, скажем, под именем gtk+-3.24.1-r1.ebuild
  6. В консоли (в директории, где ваш ебилд) создаём манифест:
    ebuild gtk+-3.24.1-r1.ebuild digest
  7. Обновляемся.
  8. Наслаждаемся нативным (иксовым) dpi в gtk3-приложениях.

Раз уж такая последовательность...
есть прекрасный рецепт как применять патчи без локального оверлея https://wiki.gentoo.org/wiki//etc/portage/patches

Спасибо! В подобных случаях девствительно удобнее.

Danhuu написал:
Спасибо! В подобных случаях девствительно удобнее.

Главное — не забыть о нём в случае ошибки сборки обновления ☺

—

:wq
--
Live free or die