Началось с того, что меня бесило, что 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 способов.
Автор: Дмитрий