Featured

Linux и WYSIWYG

В этом весьма маленьком очерке я расскажу о аспектах, из-за которых масштаб 100% в графическом редакторе на дисплее может не совпадать с настоящим размером.

Потребовалось мне допечатать на имеющийся лист бумаги мало текста и графики. Решил напросвет подогнать. Выставил масштаб 100%, прикладываю лист к экрану, а меж тем, что на дисплее и на бумаге, разбег процентов на 20%.

Так бывает, когда настоящая разрешающая способность экрана (в точках на дюйм) не совпадает с тем, что задумывается программка. Когда у программки есть задачка нарисовать на дисплее что-то длиной, к примеру, L см, она вычисляет сколько это в пикселях. Для этого она получает DPI, а дальше приблизительно по последующей формуле Linux и WYSIWYG получает длину в пикселях.

Фактически неувязка в том, как программке добыть этот DPI, и здесь начинаются пляски с бубном. Совершенно, монитор умеет отдавать видеоплате, а та в свою очередь ОС, свои линейные размеры. Для этого служит интерфейс DDC (Display Data Channel) и протокол EDID. А дальше начинаются задачи.

Неувязка №1 — протокол EDID передает линейные размеры экрана с точностью до см. Чудилось бы не неудача, но полсантиметра на маленьком экране (как у лэптопов) — это 3-4%. Не трагедия, да и это реально избежать.

Неувязка №2 — X.org, не глядя на то, что считывает размеры через EDID, почему-либо всё равно в моём случае их не применил и поставил DPI равным 96. Выяснить это можно последующей командой в графическом терминале:

$ xdpyinfo | grep resolution
resolution: 96×96 dots per inch
Неувязка №3 — приложение может применять остальные источники для получения DPI. Так случается с приложениями, использующими библиотеку GTK3. Почему так? Не понимаю. Оставим это на совести разрабов GTK3.

Итак, подтюним всё это дело.

1) Измерим линейкой монитор. В моём случае выходит 347 мм на 195 мм.

2) Расчитаем DPI. Для этого нам будет нужно выяснить разрешение монитора. У меня 1600×900. Быстрее всего DPI однообразный для вертикального и горизонтального измерения, но это не постоянно так. Linux и WYSIWYG. Linux и WYSIWYG.

3) Открываем файл конфигурации X.org /etc/X11/xorg.conf. Если такового файла нет, то из-под root необходимо запустить:

X.org -configure
и приобретенный файл записать в обозначенный путь. В секцию Monitor добавить строку DisplaySize, обязано получиться что-то схожее на это:

Section «Monitor»
Identifier «Monitor0»
VendorName «Monitor Vendor»
ModelName «Monitor Model»
DisplaySize 347 195
EndSection

Сиим мы решим делему 1 и 2.

4) Сделать файл ~/.Xresources либо добавить в имеющийся настройку DPI:

Xft.dpi: 117

Эти мы решим делему 3.

Опосля что перезапустить X-сессию и всё обязано подцепиться.

Источник

Zeen is a next generation WordPress theme. It’s powerful, beautifully designed and comes with everything you need to engage your visitors and increase conversions.

Ещё
aefffacdda
Лунное затмение 5 июля: чем опасно явление и как избежать последствий