Использование монитора с высоким разрешением в Kubuntu

()

Прежде чем говорить о мониторах с высоким разрешением надо сначала определиться что же считать этим самым «высоким разрешением». По умолчанию XOrg всегда настраивает монитор исходя из предполагаемого разрешения в 96dpi (96 dots per inch - 96 точек на дюйм).

Распространённые мониторы с диагональю 15.6 дюйма и разрешением 1366x768 точек имеют реальное разрешение около 100dpi и при настройке их как 96dpi особых проблем как правило не возникает. Проблемы обычно возникают если реальное разрешение монитора превышает 120dpi. В этом случае шрифты и элементы интерфейса начинают казаться мелкими и возникает потребность в настройке. Именно о таких мониторах и пойдёт речь далее.

Сразу уточним: этот текст не претендует на абсолютную истину, а скорее описывает опыт автора по настройке Kubuntu 18.04 на ноутбуке HP Probook 430 G6 с экраном диагональю 13.3 дюйма и разрешением 1920x1080, что примерно соответствует рарзрешению 165dpi.

Итак, мы имеем реальное разрешение экрана в 165dpi и выставляемое по умолчанию в 96dpi. Получается что все элементы на экране кажутся уменьшенными в 1.7 раза. Разработчики KDE предлагают простой способ решения проблемы в виде настройки доступной в центре управления. Она доступна по пути «Оборудование» -> «Экран» -> «Экраны» и называется «Масштабирование содержимого экрана»:

Окно настройки масштабирования экрана в центре управления KDE

Сначала это даже кажется хорошим решением, однако эта настройка не меняет настройки dpi, а использует обходные пути. В итоге на экране появляются различные дефекты отрисовки, бывают проблемы со шрифтами и т.п. Если вас это не смущает то дальше можете не читать :-)

Более сложный путь это корректная настройка dpi в XOrg. На самом деле даже это не решит всех проблем, но по крайней мере снизит их количество. Первым делом нужно узнать физическую ширину и высоту монитора в миллиметрах. В редких случаях эти параметры можно узнать из технических характеристик устройства. В остальных можно воспользоваться линейкой и банально измерить экран. Кроме того зная соотношение сторон и диагональ экрана можно вычислить ширину и высоту и для этого более чем достаточно школьного курса геометрии. Для экранов с соотношением сторон 16:9 можно использовать следующие формулы:

  • Ширина (мм) = 22.14 * Диагональ (дюйм)
  • Высота (мм) = 12.45 * Диагональ (дюйм)

Далее нужно создать файл "/etc/X11/xorg.conf.d/90-monitor.conf" следующего содержания:

Section "Monitor"
        Identifier "<default monitor>"
        DisplaySize 290 170
EndSection

В строке DisplaySize нужно указать свои значения сначала ширины, а потом высоты экрана. Затем необходимо перезапустить XOrg и на первый взгляд работа завершена. Узнать текущие параметры экрана можно командой:

xdpyinfo|grep -B2 resolution

Результат выполнения команды "xdpyinfo|grep -B2 resolution"

На данном этапе корректно работают все приложения, написанные с использованием библиотек KDE и GTK2, а так же большая часть приложений на QT4/QT5.

Очень большое количество приложений использует библиотеку GTK3. Эта библиотека игнорирует настройки DPI в X, однако «уважает» переменные окружения «GDK_SCALE» и «GDK_DPI_SCALE». Первая определяет во сколько раз будет масштабирован интерфейс приложений GTK3. Обязательно целое число. Вторая отвечает за масштабирование шрифтов. Подробнее можно прочитать тут.

Обычно рекоммендуется с помощью «GDK_SCALE» увеличить размер всех элементов, а потом с помощью «GDK_DPI_SCALE» корректируется размер шрифта. Однако если масштабировать надо менее чем в два раза то стоит воспользоваться тем фактом, что многие темы GTK3 подстраиваются под размер шрифта (например применяемая в Kubuntu тема «Breeze») и потому достаточно отрегулировать размер шрифта. При использовании в качестве оболочки bash нужно в файл &laqup;~/.bashrc» добавить строку:

export GDK_DPI_SCALE=1.4

Коэффициент здесь зависит от вашего dpi. В общем виде он получается по формуле: ваш_dpi/96. Однако если визуально кажется что приложения увеличены или уменьшены слишком сильно то его можно подкорректировать вручную.

Если используется оболочка fish то нужно в файл «~/.config/fish/config.fish» строку вида:

set -x GDK_DPI_SCALE 1.4

Если вы используете другую оболочку то действуйте в соответствии с её документацией. В любом случае после добавления переменной окружения необходимо перезапустить сеанс чтобы изменения вступили в силу.

Следующая проблема: значки на панелях инструментов. Независимо от используемой графической библиотеки в Linux они всегда имеют фиксированный размер (кроме отдельных приложений) и не масштабируются вместе с остальными элементами. Единственный путь это менять размер этих значков в настройках.

И даже на этом шаге остаются ещё приложения, которым требуется отдельная настройка. Единого рецепта тут нет и с каждым конкретным случаем надо разбираться отдельно.

Например в IDE sublimetext3 за масштабирование отвечает опция «ui_scale» в файле конфигурации. По умолчанию (и если не указана) её значение равно "1.0". Необходимо вписать желаемый коэффициент и перезапустить IDE.

RSS-читалка quiterss позволяет отдельно настроить разрмер шрифтов и значков панелей. В целом это решает проблему, хотя конечно это костыль.

Официальный клиент ICQ в разделе «Настройки» -> «Оформление» содержит ползунок управления машстабом интерфейса. Решение не идеальное, но достаточно разумное и удобное.

Очень логично настраивается wine: в утилите «winecfg» в разделе «Графмка» можно указать DPI. Однако следует помнить что не все Windows-приложения корректно работают с нестандартными разрешениями и им уже никак не помочь.

Настройка DPI в Wine с помощью утилиты winecfg

Отдельная история это Java-приложения. DBeaver сразу подхватывает настроки DPI и работает корректно, а во Arduino IDE корректно показывает меню, но самом редакторе требуется настроить размер шрифта.

Ключевые слова: hidpi, kde, arduino, sublimetext, sublimetext3, wine, icq, xdpyinfo.

Подписаться на обновления: RSS-лента Канал в TamTam Telegram канал Канал в ICQ

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

Ladm 2020-01-09 19:12:27 (#)

Под виндой та же фигня - заголовки окон и тексты слишком мелкие для моего глаза. Осталось купить ноут 15 дюймов FullHD...
Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2020 Вадим Калинников aka MooSE
Политика конфиденциальности