Configurando renderização de subpixel diferente em monitores diferentes

Configurando renderização de subpixel diferente em monitores diferentes

Estou usando monitores duplos, um deles girado 90 graus. A suavização da fonte não parece correta no monitor girado (ou seja, há bordas de arco-íris ao redor dos caracteres).

Acredito que isso ocorre porque o X está usando a mesma ordem de renderização de subpixel em ambos os monitores. Existe uma maneira de configurar diferentes ordens de renderização de subpixels para cada monitor? (ou seja, monitor 1 = RGB e monitor 2 = vRGB).

Responder1

Você teria que configurar seus monitores como telas X separadas, não como uma área de trabalho compartilhada. O Ubuntu deve permitir que você ajuste a ordem dos subpixels para telas X individuais.

Caso contrário, o que aconteceria com uma janela que abrangesse dois dispositivos de exibição com diferentes ordens de subpixels? Ou ainda mais complicado, dois monitores em modo clone com ordens físicas diferentes (RGB vs BGR).

Esta é uma limitação conhecida para todos os sistemas operacionais no momento e precisaria de uma grande reformulação para ser corrigida. O ajuste dinâmico não é viável porque a biblioteca que faz a renderização teria que saber em qual tela você está e ajustar dinamicamente. Além disso, suponha que você tenha metade de uma janela em uma tela e metade em outra - não saberia qual escolher.

Configurando várias telas X:

  1. Inicialize e reconfigure o X. sudo dpkg-reconfigure -phigh xserver-xorg Siga as etapas para configurar o monitor principal. (Não conheço uma maneira de executar esta etapa específica da CLI)
  2. Abra um terminal e
    lspci
    isso deverá fornecer uma lista de seus dispositivos e seus IDs de barramento. Encontre a placa gráfica e anote seus IDs de barramento.
  3. Faça uma cópia do seu xorg.confcomo xorg.conf.origtalvez e abra-o:sudo vi /etc/X11/xorg.conf
  4. Leia isso ANTESprocedendo para ter certeza de que você pode personalizá-lo o quanto quiser.
  5. Agora faça duas Deviceseções e liste BusIDo cartão a ser compartilhado e também liste o driver assim:

    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. Agora crie duas Screenseções (com os parâmetros de sua escolha, claro, a única coisa que precisa corresponder é o Devicedesta seção com o Identifierda 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. Agora faça uma Monitorseção 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. Por fim, atualize a ServerLayoutseção para usar e posicionar ambas Screenas seções:

    Section "ServerLayout"
        ...
        Screen         0 "Screen0" 
        Screen         1 "Screen1" leftOf "Screen0"
        ...
    EndSection
    
  9. Reinicie o X e cruze os dedos! Se funcionar, continue ajustando-o o quanto quiser.

AGORA PARA A ORDEM DE RENDERIZAÇÃO DE SUBPIXEL Faça essa alteração em font.confou ~/font.conf/etc/X11/font.conf`. bgr

Responder2

Outra solução é definir o antialiasing para escala de cinza em vez de subpixel, já que todas as telas LCD não têm mais a mesma orientação de pixel.

Eu fiz isso com gnome-tweaks -> fontes -> antialiasing -> padrão. Funciona bem para mim. Você também pode configurá-lo para “Nenhum” se preferir nitidez.

informação relacionada