Мониторы с высокой плотностью пикселей давно перестали быть экзотикой: 27-дюймовый 4K, 14-дюймовый ноутбук с матрицей 2880×1800 и Retina-подобные экраны требуют масштабирования, иначе интерфейс становится микроскопическим. В Linux эта задача решается по-разному в Wayland и X11, а часть приложений вообще игнорирует системные настройки. Разберём, как получить читаемый текст без размытых окон.

Два механизма масштабирования

Есть два разных подхода. Первый — увеличить все элементы интерфейса, оставив физическое разрешение: композитор рисует кадр в большем внутреннем размере и уменьшает его. Второй — изменить разрешение экрана, чем занимается драйвер. Первый даёт чёткую картинку, второй — мыло, потому что матрица работает не в нативном режиме. В Linux за первый отвечает композитор, и именно здесь начинаются различия между сессиями.

Wayland: дробное масштабирование

В актуальных выпусках GNOME дробное масштабирование включено по умолчанию: в настройках дисплея доступны 125, 150 и 175 процентов. Если у вас более старая сборка и таких пунктов нет, проверьте экспериментальный ключ Mutter.

gsettings get org.gnome.mutter experimental-features
gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

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

В KDE Plasma масштаб задаётся для каждого экрана отдельно в системных настройках, а в композиторах на wlroots (Sway, Hyprland) — через их конфиги или утилиту wlr-randr.

wlr-randr
wlr-randr --output DP-1 --scale 1.5
wayland-info | grep -i scale

X11: только целые множители

В X11 композитор не умеет масштабировать чужие окна, поэтому приходится либо менять разрешение, либо настраивать каждое приложение отдельно. Универсальный способ — поднять DPI шрифтов через Xresources: это влияет на GTK, Qt и многие старые программы.

printf 'Xft.dpi: 144\nXft.antialias: true\nXft.hinting: true\n' >> ~/.Xresources
xrdb -merge ~/.Xresources
xrandr --query | grep -w connected

Для GTK3 в X11 работают переменные GDK_SCALE (целое число) и GDK_DPI_SCALE (дополнительный дробный коэффициент). Для Qt — QT_SCALE_FACTOR и QT_AUTO_SCREEN_SCALE_FACTOR. Комбинация целого множителя и дробного коэффициента даёт эффективные 150 процентов.

export GDK_SCALE=2
export GDK_DPI_SCALE=0.75
export QT_SCALE_FACTOR=1.5
export QT_AUTO_SCREEN_SCALE_FACTOR=0

Эти строки лучше положить в ~/.profile или в файл окружения, а не вводить вручную в каждом терминале. Помните, что в Wayland-сессии GTK4 и Qt6 масштабируются композитором, и те же переменные могут дать двойное увеличение.

Отдельные приложения

Electron-программы (мессенджеры, редакторы кода) часто игнорируют системный масштаб. Универсальный флаг — force-device-scale-factor, а для свежих версий Electron помогает подсказка платформы.

ELECTRON_OZONE_PLATFORM_HINT=auto code
google-chrome --force-device-scale-factor=1.25
code --force-device-scale-factor=1.25

XWayland-приложения масштабируются композитором как растровая картинка и выглядят размыто. Если программа не умеет Wayland, включите её собственное масштабирование и не полагайтесь на системное: так текст останется чётким.

Несколько мониторов с разной плотностью

Самая частая проблема ноутбука с внешним экраном: встроенная матрица имеет высокую плотность, а монитор на столе — обычную. В Wayland каждый выход масштабируется отдельно, поэтому ноутбучный экран можно оставить на 150 процентах, а внешний — на 100. Главное, чтобы композитор умел дробные значения; иначе придётся выбирать между крупным интерфейсом на одном экране и мелким на другом.

GNOME хранит параметры выходов в файле настроек мониторов, и при переключении док-станции он перезаписывается. Если после подключения монитора окна уезжают за край, удалите устаревшую конфигурацию при выключенном внешнем экране и настройте заново. В KDE аналогичная логика работает через параметры системы, а в Sway — через строки output в конфиге.

cp ~/.config/monitors.xml ~/monitors.xml.bak
rm ~/.config/monitors.xml
gnome-control-center display

Проверить фактическую плотность поможет простая арифметика: разделите ширину в пикселях на ширину в дюймах. Для 27-дюймового 4K это примерно 163 пикселя на дюйм, для 24-дюймового Full HD — около 92. Разница в полтора-два раза и объясняет, почему одним масштабом на все экраны не обойтись.

Курсор, шрифты и панели

Размер курсора и текст масштабируются отдельно от окон. Крупный курсор помогает не терять указатель на 4K-экране, а text-scaling-factor увеличивает шрифт во всех приложениях, соблюдающих настройки окружения.

gsettings set org.gnome.desktop.interface cursor-size 32
gsettings set org.gnome.desktop.interface text-scaling-factor 1.15

Целочисленное масштабирование в Wayland обычно не нужно: там работает настройка монитора. Некоторые темы курсоров содержат только один размер, и увеличение до 48 может дать размытый указатель — проверяйте тему визуально.

Как понять, что масштаб выбран верно

  • Строка текста в терминале читается без наклона к экрану с обычного расстояния.
  • Окна не выходят за границы экрана после смены масштаба.
  • Меню и подсказки не обрезаются по краям.
  • Курсор не теряется на светлом фоне.
  • Видео и игры запускаются в нативном разрешении, без мыла.

Типичные ошибки

Первая — выставить разрешение ниже нативного «чтобы было крупнее»: так вы теряете чёткость и получаете интерполяцию. Вторая — смешивать Wayland и X11-переменные масштабирования, из-за чего окна становятся гигантскими. Третья — забыть про приложения из Flatpak: они видят настройки через портал, но собственные переменные окружения у них свои. И последняя — менять monitors.xml вручную при выключенной сессии, не сделав копию. Если после настройки интерфейс стал крупным только в части программ, ищите причину в их собственных флагах, а не в системном масштабе.

Чек-лист

  • Определите тип сессии командой echo $XDG_SESSION_TYPE.
  • Для Wayland используйте масштаб композитора и не трогайте GDK_SCALE.
  • Для X11 настройте Xft.dpi и переменные GTK/Qt.
  • Проверьте Electron-приложения отдельным флагом.
  • Сохраните monitors.xml и список переменных окружения.

Итог

HiDPI в Linux перестал быть болью, если понимать разделение ответственности: Wayland-композитор масштабирует интерфейс целиком, X11 требует ручной настройки DPI и переменных, а отдельные приложения — собственных флагов. Настройте системный масштаб, проверьте пару требовательных программ, увеличьте курсор и шрифт — и 4K-экран станет комфортным рабочим инструментом, а не источником раздражения.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте