1 декабря 2011 г.

расчёт dpi монитора и настройка в linux (черновик)

Началось с того, что меня бесило, что gnome ставил 96 dpi мне, хотя, очевидно, настоящий dpi другой. Также запросто может быть (у меня на прошлом мониторе был) совершенно разное значение DPI по горизонтали и вертикали. Потом я перестал пользоваться gnome и начал сталкиваться с такой же настройкой в целом во всей системе. Как и положено в linux это приводило к гемору и тому, что иногда это работало, иногда нет, итп. И руководство давности годовой из инета оказывались неактуальными совершенно, потому что всё уже deprecated и работает по-другому.

[!]з.ы. по сути это черновиком так и осталось, так что пользы мало.

Расчёт очевиден. Допустим, у меня монитор 24", его разрешение: 1920 * 1080. Мерю реальные размеры линейкой: 530 мм * 299 мм. В дюймах (1 дюйм = 25.4 мм) будет: 20,866141732 * 11,771653543. Стало быть, DPI: 92,015094341 * 91,7458194. То есть DPI физически у меня по обеим сторонам 92.

Вот два калькулятора DPI:
http://members.ping.de/~sven/dpi.html
http://pxcalc.com/

Смотрим что нам даёт xdpyinfo

$ xdpyinfo | grep -B2 resolution
screen #0:
  dimensions:    1920x1080 pixels (507x285 millimeters)
  resolution:    96x96 dots per inch

тут провал.

Хотя явно видно, что изначально устанавливаются другие, почти правильные, DPI:
$ grep -i DPI /var/log/Xorg.0.log
[    33.243] (**) intel(0): DPI set to (92, 94)
Это как бы похоже на правду.

А до этого видно, в принципе, корректное получение размеров монитора из EDID:

[    33.243] (**) intel(0): Display dimensions: (530, 290) mm
[    33.243] (**) intel(0): DPI set to (92, 94)

Но ниже:

[    33.477] (II) AIGLX: Loaded and initialized /usr/lib/dri/i915_dri.so
[    33.477] (II) GLX: Initialized DRI2 GL provider for screen 0
[    33.477] (II) intel(0): Setting screen physical size to 507 x 285

то, что и показывает xdpyinfo, походу.

Короче, кто-то посередине портит DPI. Также гуглилась бага intel-драйвера итд итп. Не понять вообще нифига, может, объяснит кто. Я по-разному в течение года прописывал в разных средах и WM, что уже запутался и забыл как правильнее. Пробовал по разному:

1) Указывал в /usr/bin/startx следующее: defaultserverargs="--dpi 92"

2) В LXDE ещё попробовал:
/home/dimon/.config/lxsession/LXDE/desktop.conf
iXft/DPI=92

3) Ещё попробовал прописать чо-то примерно:

ServerArgsLocal=-br -nolisten tcp -dpi 96

4) смотрим:

/etc/X11/Xresources

! This is the global resources file that is loaded when
! all users log in, as well as for the login screen

! Fix the Xft dpi to 96; this prevents tiny fonts
! or HUGE fonts depending on the screen size.
Xft.dpi: 96

! hintstyle: medium means that (for Postscript fonts) we
! position the stems for maximum constrast and consistency
! but do not force the stems to integral widths. hintnone,
! hintslight, and hintfull are the other possibilities.
Xft.hintstyle: hintmedium
Xft.hinting: true

5) ~/.Xresources

Xft.dpi: 92
...

обязательно в конце перевод строки.
Потом
xrdb -merge ~/.Xresources

Просмотр самой базы:

xrdb -query -all

Сам этот файл (~/.Xresources) мержится как и положено в
/etc/X11/xinit/xinitrc


И ещё 100 способов.

Комментариев нет:

Отправить комментарий