Настройка различного субпиксельного рендеринга на разных мониторах
Я использую двойные мониторы, один из которых повернут на 90 градусов. Сглаживание шрифтов выглядит неправильно на повернутом мониторе (т. Е. Вокруг символов есть радужные границы).
Я считаю, что это потому, что X использует один и тот же порядок рендеринга субпикселей на обоих мониторах. Есть ли способ настроить различные порядки рендеринга субпикселей для каждого монитора? (т. е. монитор 1 = RGB, а монитор 2 = vRGB).
2 ответа
Вы должны настроить свои дисплеи как отдельные экраны X, а не как общий рабочий стол. Ubuntu должен затем позволить вам настроить порядок субпикселей для отдельных экранов X.
Иначе, что случилось бы с окном, которое охватывает два устройства отображения с различными порядками подпикселей? Или, что еще сложнее, два дисплея в режиме клонирования с разными физическими порядками (RGB против BGR).
На данный момент это известное ограничение для всех операционных систем, и для его исправления потребуется серьезная модернизация. Динамическая настройка невозможна, потому что библиотека, выполняющая рендеринг, должна знать, на каком экране вы находитесь, и динамически настраивать. Кроме того, предположим, что у вас есть половина окна на одном экране и половина на другом - он не знает, какой выбрать.
Настройка нескольких экранов X:
- Загрузите и перенастройте X.
sudo dpkg-reconfigure -phigh xserver-xorg
Следуйте инструкциям по настройке основного дисплея. (Я не знаю способ сделать этот конкретный шаг из CLI) - Откройте терминал и
lspci
Это должно дать вам список ваших устройств и их идентификаторы шины. Найдите видеокарту и запишите их идентификаторы. - Сделайте копию своего
xorg.conf
какxorg.conf.orig
может и откроюsudo vi /etc/X11/xorg.conf
- Прочтите это ДО продолжения, чтобы убедиться, что вы можете настроить его так, как вы хотите.
Теперь сделайте два
Device
разделы и списокBusID
карты для совместного использования, а также перечислите драйвер следующим образом:Section "Device" Identifier "nvidia0" # Your preferred driver Driver "nvidia" # Edit the BusID with the location of your graphics card BusID "PCI:2:0:0" Screen 0 EndSection Section "Device" Identifier "nvidia1" # Your preferred driver Driver "nvidia" # Edit the BusID with the location of your graphics card BusId "PCI:2:0:0" Screen 1 EndSection
Теперь создайте два
Screen
разделы (с параметрами по вашему выбору, конечно, единственное, что должно соответствоватьDevice
в этом разделе кIdentifier
в предыдущем) как:Section "Screen" Identifier "Screen0" Device "nvidia0" Monitor "Monitor0" DefaultDepth 24 Subsection "Display" Depth 24 Modes "1600x1200" "1024x768" "800x600" "640x480" EndSubsection EndSection Section "Screen" Identifier "Screen1" Device "nvidia1" Monitor "Monitor1" DefaultDepth 24 Subsection "Display" Depth 24 Modes "1600x1200" "1024x768" "800x600" "640x480" EndSubsection EndSection
Теперь сделайте
Monitor
раздел для каждого монитора как:Section "Monitor" Identifier "monitor name here" EndSection Section "Monitor" Identifier "monitor name here" # Rotate as you want (your question says one is rotated) Rotate "left" EndSection
Наконец, обновите
ServerLayout
раздел для использования и позиционировать обаScreen
разделы:Section "ServerLayout" ... Screen 0 "Screen0" Screen 1 "Screen1" leftOf "Screen0" ... EndSection
Перезапустите X и скрестите пальцы! Если это работает, то продолжайте тонкую настройку так, как вам нравится.
СЕЙЧАС ДЛЯ СУБПИКСЕЛЬНОГО РЕНДЕРНОГО ЗАКАЗА Сделайте это изменение в font.conf
либо в ~/font.conf
или /etc/X11/font.conf`. BGR
Другим решением является установка сглаживания в градациях серого вместо субпикселей, учитывая, что все ваши ЖК-экраны больше не имеют одинаковую ориентацию пикселей.
Я сделал это с помощью gnome-tweaks -> шрифты -> сглаживание -> стандарт. У меня работает нормально. Вы также можете установить «Нет», если предпочитаете резкость.