Настройка разной субпиксельной визуализации на разных мониторах

Настройка разной субпиксельной визуализации на разных мониторах

Я использую два монитора, один из которых повернут на 90 градусов. Сглаживание шрифтов выглядит неправильно на повернутом мониторе (т. е. вокруг символов появляются радужные рамки).

Я полагаю, это потому, что X использует один и тот же порядок рендеринга субпикселей на обоих мониторах. Есть ли способ настроить разные порядки рендеринга субпикселей для каждого монитора? (т. е. монитор 1 = RGB, а монитор 2 = vRGB).

решение1

Вам придется настроить свои дисплеи как отдельные экраны X, а не как общий рабочий стол. Ubuntu тогда позволит вам настроить порядок субпикселей для отдельных экранов X.

В противном случае, что произойдет с окном, которое охватывает два устройства отображения с разными порядками субпикселей? Или, что еще сложнее, два дисплея в режиме клонирования с разными физическими порядками (RGB против BGR).

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

Настройка нескольких X-экранов:

  1. Загрузите и перенастройте X. sudo dpkg-reconfigure -phigh xserver-xorg Следуйте инструкциям по настройке основного дисплея. (Я не знаю, как выполнить этот конкретный шаг из CLI)
  2. Откройте терминал, и
    lspci
    он должен выдать вам список ваших устройств и их идентификаторов шин. Найдите видеокарту и запишите их идентификаторы шин.
  3. Сделайте копию вашего файла xorg.confas xorg.conf.origmaybe и откройте его:sudo vi /etc/X11/xorg.conf
  4. Прочитай это ДОпродолжая, убедитесь, что вы можете настроить его так, как захотите.
  5. Теперь создайте два 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
    
  6. Теперь создайте два 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
    
  7. Теперь создайте 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
    
  8. Наконец, обновите ServerLayoutраздел, чтобы использовать и расположить оба Screenраздела:

    Section "ServerLayout"
        ...
        Screen         0 "Screen0" 
        Screen         1 "Screen1" leftOf "Screen0"
        ...
    EndSection
    
  9. Перезапустите X и скрестите пальцы! Если это сработает, то продолжайте настраивать его столько, сколько захотите.

ТЕПЕРЬ ПОРЯДОК РЕНДЕРИНГА СУБПИКСЕЛЯ Сделайте это изменение font.confлибо в ~/font.conf/etc/X11/font.conf`. bgr

решение2

Другое решение — установить сглаживание в оттенках серого вместо субпиксельного, поскольку все ваши ЖК-экраны больше не имеют одинаковой ориентации пикселей.

Я сделал это с помощью gnome-tweaks -> fonts -> antialiasing -> standard. У меня все работает нормально. Вы также можете установить его на "None", если предпочитаете резкость.

Связанный контент