...

суббота, 16 августа 2014 г.

Настройка GUI в линуксе для мониторов с High DPI

В последнее время появилось достаточно много мониторов с высоким разрешением, 150 dbi и выше, особенно в ноутбуках. И при этом всё выглядит жутко маленьким.

Причина этого — система думает что у Вашего монитора разрешение 96..100 dpi.

Решать это только увеличением размера шрифта неправильно, т.к. размеры всех остальных элеменов интерфейса остаются маленькими. Надо чтобы графическая оболочка сама это делала.

Мне с решением этой проблемы пришлось весьма долго рыться в интернете, собирая мелкие заметки, т.к. не оказалось места где бы это можно было увидеть всё вместе.


Ниже будет идти список где что поправить, все параметры привожу для своего монитора — 13,3" при 2560x1600, это даёт 226 dpi. Более высокое разрешение сейчас я видел только в ноутбуке Fujistu U904 — 262 dpi.


Параметры монитора: в xorg.conf в праметрах монитора дописать:

Option «DPI» «226 x 226»

# DisplaySize 286 179 # тоже самое In millimeters, но это не так удобно

Если у Вас нет xorg.conf и монотор у Вас только 1, то можно задать это монитору по умолчанию. Для этого в каталоге конфига иксов создаётся файл xorg.conf.d/90-monitor.conf с таким содержимым:



Section "Monitor"
Identifier "<default monitor>"
Option "DPI" "226 x 226"
EndSection

В ключи запуска иксов надо дописать -dpi 226, в kdm это строка параметра ServerArgsLocal


Для шрифтов в /etc/X11/Xresourse или ~/.Xresourse:

Xft.dpi 96 заменить на 226


После перезапуска исков можно проверить что это вступило в силу:

— в логе иксов должны быть такие строки /var/log/Xorg.0.log

intel(0): clock: 268.5 MHz Image Size: 286 x 179 mm

intel(0): DPI set to (226, 226)

— xdpyinfo | grep -B2 resolution

screen #0:

dimensions: 2560x1600 pixels (287x179 millimeters)

resolution: 227x227 dots per inch

— xrdb -query | grep dpi

Xft.dpi: 226


Но есть куча программ и GUI которые не смотрят на параметры иксов. Поэтому продолжаем.


Для KDE: Параметры системы => Основные параметры внешнего вида => Шрифты => Использовать другой DPI: 226.

Но значки придётся увеличить отдельно: Параметры системы => Основные параметры внешнего вида => Значки, вкладка Дополнительно.


Для Gnome: в gconf прописать в /desktop/gnome/font_rendering/dpi (нужно ли тут ещё что-то дополнительно — я не знаю, т.к. не пользуюсь Гномом).


Для Firefox: в about:config: layout.css.PixelsPerPx=2.26, layout.css.dpi=226.

Но нередко для броузере не нужно 100% соответствие, поэтому я себе чтобы больше влазило на экран прописал layout.css.PixelsPerPx=2. Хотя firefox и даёт при этом самое точное соответсвие картинке при 100 dpi, но использует странное масштабирование растровых изображений. Сначала внутри получает изображение которое должно было бы быть при 100 dpi, а потом растягивает в 2 раза. Из-за этого картинки получаеются мыльными даже если они имеют высокое разрешение


Для Opera: достаточно установить 200% мастабирование — опера это делает достаточно корректно.


Для Chrome в chrome://flags/ есть параметр «Режим высокого разрешения», но для linux он не доступен. Поэтому остаётся только поставить 200% и «очень крупный» размер шрифта. К сожалению, это не влияет на flash.

Но я у себя поставил в нём 120% и использую для просмотра карт (maps.yandex.ru, maps.google.ru) для высокой детализации картинки.


Konqueror пока не понимает high dpi, и масштабирует неверно, хотя akregator, используя тот же движок, показывает всё правильно без дополнительных указаний.


Проверить что Ваш dpi понят системой корректно лучше всего открыв страницу формата A4 в офисной программе, например OpenOffice, и при 100% масштабировании приложив бумажный лист. Если всё работает правильно, то размеры совпадут.

Так же в OpenOffice в настройках стоит поставить размер значков «большие».


После всех настроек нашлись конфликты жёстко заданных растровых картинок и увеличившихся шрифтов.

Я такое увидел в kdm и в Opera: работать можно, но выглядит не очень приятно — края букв вылазят за отведённые для надписей поля. Поэтому я в xorg.conf.d/90-monitor.conf и в Xresourse заменил 226 на 175. (Вообще странно что opera, считывая размер dpi для меню и других надписей, не использует этот же dpi для отображения html страницы).


PS Собиралось это изначально только для себя тут http://ift.tt/1rEvqry, но оказалось что сейчас такой вопрос появляется у многих. Буду рад если появится какие-то конструктивные дополнения.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


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

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