[частично решено]Разный размер шрифта в 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

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

export GDK_DPI_SCALE=1.33

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

sspphheerraa

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

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".