Дробное масштабирование Gnome

Дмитрий Корнев
31 октября 2023

У меня Debian 12 Gnome. Имея экран 16" c разрешением 2560*1600 по умолчанию получается всё слишком мелко. В этой статье расскажу о решении, которое в итоге нашёл для себя.

Маштаб текста

Это наиболее простое и доступное решение. Масштаб можно быстро задать в «Настройках» → «Специальные возможности» → «Крупный текст». Это незначительно увеличит масштаб, для моего экрана это мало.

Если воспользоваться приложением «Дополнительные настройки», которое в Debian есть по умолчанию, то там настроить масштаб текста можно совершенно произвольно. Можно задать, например, значение 1.5. Для моего экрана это хороший вариант.

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

Масштабирование экрана

Настройка есть по умолчанию в «Дисплеи» → «Масштаб». Она влияет на всё, что есть на экране. Изначально доступно ограниченное количество вариантов: 100%, 200%, 300%. Как я уже говорил, мне походит увеличение 1.5, что соответствует 150%. Для возможности установки такого значения надо выполнить в консоли команду:

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

Дробное масштабирование считается до сих пор экспериментальной функцией, поэтому её приходится активировать таким способом. Как я понял проблем нет, ну, во всяком случае я точно не сталкивался. Но это возможно скажется на производительности, что опять же я не заметил. Может ещё в каких-то программах, например, будет некрасиво. Ничего не поделаешь, другого варианта нет.

После выполнения команды в меню «Дисплеи» устанавливаем 150% и радуемся.

Масштаб при входе

Всё хорошо, но огорчает момент входа в систему, там по прежнему всё мелко. Сделанные в своей сессии изменения не распространяются на экран входа. Чтобы здесь сделать всё тоже самое требуется создать файл /usr/share/glib-2.0/schemas/93_hidpi.gschema.override, в котором прописываем настройки:

[org.gnome.mutter]
experimental-features=['scale-monitor-framebuffer']

[org.gnome.desktop.interface]
scaling-factor=2
text-scaling-factor=1

Для установки 150% нужно всё задать именно так. Нельзя вписать в scaling-factor значение 1.5, оно так не работает. Мы задаём здесь именно 2, а потом уже другим способом корректируем масштаб, см. далее.

После создания файла для применения настроек выполняем команду:

sudo glib-compile-schemas /usr/share/glib-2.0/schemas

Установленный масштаб 150% через приложение настроек сохраняется в файл /home/юзер/.config/monitors.xml. Необходимо этот файл с правильно сделанными установками скопировать сюда /var/lib/gdm3/.config/monitors.xml. На этом всё, перезапускайте, проверяйте.

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

Комментарии