Настройка GUI в линуксе для мониторов с High DPI
В последнее время появилось достаточно много мониторов с высоким разрешением, 150 dbi и выше, особенно в ноутбуках. И при этом всё выглядит жутко маленьким.Причина этого — система думает что у Вашего монитора разрешение 96…100 dpi.Решать это только увеличением размера шрифта неправильно, т.к. размеры всех остальных элеменов интерфейса остаются маленькими. Надо чтобы графическая оболочка сама это делала.Мне с решением этой проблемы пришлось весьма долго рыться в интернете, собирая мелкие заметки, т.к. не оказалось места где бы это можно было увидеть всё вместе.
Ниже будет идти список где что поправить, все параметры привожу для своего монитора — 13,3» при 2560×1600, это даёт 226 dpi. Более высокое разрешение сейчас я видел только в ноутбуке Fujistu U904 — 262 dpi.
Параметры монитора: в xorg.conf в праметрах монитора дописать: Option «DPI» »226×226»# DisplaySize 286 179 # тоже самое In millimeters, но это не так удобноЕсли у Вас нет xorg.conf и монотор у Вас только 1, то можно задать это монитору по умолчанию. Для этого в каталоге конфига иксов создаётся файл xorg.conf.d/90-monitor.conf с таким содержимым:
Section «Monitor»
Identifier »
Для шрифтов в /etc/X11/Xresourse или ~/.Xresourse: Xft.dpi 96 заменить на 226
После перезапуска исков можно проверить что это вступило в силу: — в логе иксов должны быть такие строки /var/log/Xorg.0.logintel (0): clock: 268.5 MHz Image Size: 286×179 mmintel (0): DPI set to (226, 226)— xdpyinfo | grep -B2 resolutionscreen #0: dimensions: 2560×1600 pixels (287×179 millimeters)resolution: 227×227 dots per inch— xrdb -query | grep dpiXft.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 Собиралось это изначально только для себя тут vadiml.livejournal.com/3883.html, но оказалось что сейчас такой вопрос появляется у многих. Буду рад если появится какие-то конструктивные дополнения.