Configurar diferentes renderizados de subpíxeles en diferentes monitores

Configurar diferentes renderizados de subpíxeles en diferentes monitores

Estoy usando monitores duales, uno de ellos girado 90 grados. El antialisado de fuentes no se ve bien en el monitor girado (es decir, hay bordes de arco iris alrededor de los caracteres).

Creo que esto se debe a que X utiliza el mismo orden de representación de subpíxeles en ambos monitores. ¿Existe alguna forma de configurar diferentes órdenes de representación de subpíxeles para cada monitor? (es decir, monitor 1 = RGB y monitor 2 = vRGB).

Respuesta1

Tendría que configurar sus pantallas como pantallas X separadas, no como un escritorio compartido. Entonces Ubuntu debería permitirle ajustar el orden de los subpíxeles para pantallas X individuales.

De lo contrario, ¿qué pasaría con una ventana que abarca dos dispositivos de visualización con diferentes órdenes de subpíxeles? O aún más complicado, dos pantallas en modo clon con diferentes órdenes físicos (RGB vs BGR).

Esta es una limitación conocida para todos los sistemas operativos en este momento y necesitaría un rediseño importante para solucionarla. El ajuste dinámico no es factible porque la biblioteca que realiza el renderizado tendría que saber en qué pantalla se encuentra y ajustarse dinámicamente. Además, supongamos que tiene la mitad de una ventana en una pantalla y la otra mitad en otra; no sabría cuál elegir.

Configurar múltiples pantallas X:

  1. Inicie y reconfigure X. sudo dpkg-reconfigure -phigh xserver-xorg Siga los pasos para configurar la pantalla principal. (No conozco una manera de realizar este paso en particular desde CLI)
  2. Abra una terminal y
    lspci
    esto debería darle una lista de sus dispositivos y sus ID de bus. Busque la tarjeta gráfica y anote la identificación del bus.
  3. Haz una copia de tu xorg.confcomo xorg.conf.origtal vez y ábrela:sudo vi /etc/X11/xorg.conf
  4. Lee esto ANTESprocediendo a asegurarte de que puedes personalizarlo tanto como quieras.
  5. Ahora haga dos Devicesecciones y enumere BusIDla tarjeta que se va a compartir y también enumere el controlador de esta manera:

    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. Ahora cree dos Screensecciones (con los parámetros que elija, por supuesto, lo único que debe coincidir es lo Devicede esta sección con el Identifierde la anterior) como:

    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. Ahora haz una Monitorsección para cada monitor como:

    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. Finalmente, actualice la ServerLayoutsección para usar y posicionar ambas Screensecciones:

    Section "ServerLayout"
        ...
        Screen         0 "Screen0" 
        Screen         1 "Screen1" leftOf "Screen0"
        ...
    EndSection
    
  9. ¡Reinicia X y cruza los dedos! Si funciona, continúa ajustándolo todo lo que quieras.

AHORA PARA EL ORDEN DE RENDERIZACIÓN DE SUBPÍXELES Haga este cambio en font.confo ~/font.conf/etc/X11/font.conf`. bgr

Respuesta2

Otra solución es configurar el antialiasing en escala de grises en lugar de subpíxeles, dado que todas las pantallas LCD ya no tienen la misma orientación de píxeles.

Lo hice con gnome-tweaks -> fuentes -> antialiasing -> estándar. Funciona bien para mí. También puedes configurarlo en "Ninguno" si prefieres la nitidez.

información relacionada