Возможно ли настроить «масштабированный» рабочий стол в xorg.conf, аналогичный использованию опции xrandr scale-from?

У меня 14-дюймовый ультрабук с разрешением 2560×1440. В настоящее время я запускаю Gnome 3.16 в режиме HiDPI с коэффициентом масштабирования 2. Поскольку я не могу указать коэффициент масштабирования factional, например 1,5, я решил использовать xrandr для масштабирования рабочего стола для меня.

xrandr --output eDP1 --scale-from 3200x1800 --panning 3200x1800

Я поставил это в скрипте, который запускается вскоре после входа в сеанс Gnome. Там пара проблем с этим.

  1. Иногда масштабирование теряется, например, когда появляется экранное изображение, например, нажатие одного из элементов управления яркостью на клавиатуре ноутбука; а также
  2. просмотр полноэкранного режима Netflix накладывает дополнительное видеоизображение на браузер, занимая только верхнюю левую часть экрана ноутбука.

Что касается № 1, масштабирование не полностью потеряно, но рабочий стол «сжимается» и появляется только в верхнем левом углу, оставляя черное пространство справа и внизу видимого рабочего стола. Кажется, что «сжатый» рабочий стол является масштабированным, но застрял в верхнем левом углу экрана 3200×1800.

Я надеюсь, что если я смогу настроить X для масштабирования и не запускать xrandr, экран останется масштабированным.

X не поддерживает масштабирование через xorg.conf или подобное, только через xrandr. Вы можете настроить панорамирование на более крупном виртуальном дисплее, но это не поможет вам увеличить размер того, что отображается на дисплее.

Тем не менее, вы можете получить приблизительное значение для дробного масштабирования, которое вы хотите, с помощью комбинации нескольких изменений. Во-первых, уменьшите общий коэффициент масштабирования до 1; вы можете найти это в gnome-tweak-tool под «Windows», «HiDPI». Затем, используя gnome-tweak-tool, под «Fonts», измените «Scaling Factor» на 1.5; это сделает все шрифты на 50% больше. Это не поможет элементам пользовательского интерфейса, которые не зависят от размера шрифта (например, изображений), но он будет работать для всех элементов, например, кнопок, содержащих текст. Вы также можете получить полное масштабирование пользовательского интерфейса (как текстовые, так и графические элементы) для своего браузера; в Firefox about:config , измените layout.css.devPixelsPerPx на 1.5, который будет масштабировать веб-страницы и пользовательский интерфейс. Для Chromium, если вы не получите хорошие результаты автоматически, попробуйте chromium --high-dpi-support=1 --force-device-scale-factor=1.5 .

Это не сработает для гораздо более плотных дисплеев, таких как 3200×1800 или 3840×2160, но для 2560×1440 оно должно давать полезные результаты; Я использую эти настройки на своем основном ноутбуке, который имеет экран 2560×1440.

Я только что закончил настройку увеличения на 150% под Cinnamon, надеюсь, это вам тоже поможет, потому что GNOME похож на Cinnamon.

Я начал с команд xrandr из этой статьи HiWiki ArchWiki :

 xrandr --output HDMI1 --scale 1.2x1.2 # try 1.3 also xrandr --output HDMI1 --panning 2304x1296 # this is for 1920x1080 at 1.2 

Затем я хотел установить его постоянным, попробовал xorg.conf но он не хочет улавливать разделы Monitor config, что бы я ни пытался. Я спросил на форумах ArchLinux и получил совет принять его и выбросить xorg.conf . Во всяком случае, я думаю, что моя конфигурация правильная, и вы можете попробовать ее использовать с изменением Monitor Identifier . Наиболее интересная часть – матрица преобразования. Xorg не имеет возможности масштабирования, но я понял, что xrandr --scale является сокращением для --xrandr --transform что соответствует TransformationMatrix .

Вот мой xorg.conf :

 Section "Monitor" Identifier "TEST" # try changing this! Option "Panning" "2304x1296" Option "TransformationMatrix" "1.2 0 0 0 1.2 0 0 0 1" EndSection Section "Device" Identifier "Intel Graphics" # change these lines according to your graphics card Driver "intel" Option "AccelMethod" "sna" Option "TearFree" "true" Option "Monitor-HDMI1" "TEST" # try changing this! EndSection 

Это не работает для меня, поэтому я продолжал копать. В моей системе есть lightdm который начинается с первого lightdm , и ему нужны команды xrandr чтобы посмотреть HiDPIish. Затем он запускает cinnamon-session который переопределяет параметры отображения, и мне нужно снова запустить xrandr . Lightdm настраивается с помощью etc/lightdm/lightdm.conf и по умолчанию он запускает что-то, указанное в параметре session-wrapper . Вам нужно создать скрипт с желаемыми xrandr и поместить его где-нибудь, чтобы он запускался с помощью session-wrapper . Кстати, опции session-setup-script и display-setup-script не работали для меня.

Затем, в Cinnamon (или GNOME в вашем случае), самое лучшее, что я могу сделать, это использовать функцию автозапуска и добавить скрипт xrandr с нулевым таймаутом.