Definir renderização de subpixel diferente em monitores diferentes

16

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

Eu acredito que isso ocorre porque 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 subpixel para cada monitor? (ou seja, monitor 1 = RGB e monitor 2 = vRGB).

scaramouche
fonte
Parece que isso ainda não é possível (sem solução de software). Veja isso para algo relacionado.
precisa

Respostas:

4

Você precisaria 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 sub-pixels para telas X individuais.

Caso contrário, o que aconteceria com uma janela que abrange dois dispositivos de exibição com diferentes ordens de sub-pixel? Ou ainda mais complicado, dois monitores no modo clone com diferentes ordens físicas (RGB x BGR).

Essa é uma limitação conhecida para todos os sistemas operacionais no momento e precisaria de uma grande reformulação para corrigi-la. O ajuste dinâmico não é viável porque a biblioteca que está fazendo a renderização precisa saber em qual tela você está e ajustar dinamicamente. Além disso, suponha que você tenha metade de uma janela em uma tela e outra em outra - ela 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 a exibição principal. (Não conheço uma maneira de executar esta etapa específica da CLI)
  2. Abra um terminal e
    lspci
    Isso deve fornecer uma lista de seus dispositivos e seus IDs de barramento. Encontre a placa gráfica e anote os respectivos 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 isto ANTES de prosseguir para garantir que você possa personalizá-lo o quanto quiser.
  5. Agora faça duas Deviceseções e liste o BusIDcartã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 é a Devicenesta seção com a Identifieranterior) 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 as duas Screenseçõ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 A SUBPIXEL PRESTAÇÃO ORDEM Do essa mudança de font.confquer na ~/font.confou / etc / X11 / font.conf`. bgr

Ashhar Hasan
fonte
Estou adicionando as etapas de como fazê-lo. Mas vamos torcer para que alguém venha com uma maneira incrível de fazer o que você precisa.
Ashhar Hasan
Parece que eu também atingi um quarteirão. Embora eu possa especificar caminhos de fonte diferentes, Xorg.confmas não parece escolher caminhos para font.confarquivos diferentes . :(
Ashhar Hasan