Einstellen der Subpixel-Wiedergabe auf verschiedenen Monitoren

15

Ich verwende zwei Monitore, von denen einer um 90 Grad gedreht ist. Die Antialising-Funktion für Schriftarten wird auf dem gedrehten Monitor nicht richtig angezeigt (dh die Zeichen sind mit einem Regenbogen umrandet).

Ich glaube, das liegt daran, dass X auf beiden Monitoren dieselbe Subpixel-Renderreihenfolge verwendet. Gibt es eine Möglichkeit, unterschiedliche Subpixel-Renderreihenfolgen für jeden Monitor zu konfigurieren? (dh Monitor 1 = RGB und Monitor 2 = vRGB).

Scaramouche
quelle
Scheint so noch nicht möglich zu sein (keine Softwarelösung). Sehen Sie dies für etwas im Zusammenhang.
Ashhar Hasan

Antworten:

4

Sie müssten Ihre Anzeigen als separate X-Bildschirme konfigurieren, nicht als freigegebener Desktop. In Ubuntu sollten Sie dann die Sub-Pixel-Reihenfolge für einzelne X-Bildschirme anpassen können.

Was würde sonst mit einem Fenster passieren, das zwei Anzeigegeräte mit unterschiedlichen Subpixel-Ordnungen überspannt? Oder noch kniffliger: zwei Anzeigen im Klonmodus mit unterschiedlichen physischen Ordnungen (RGB vs BGR).

Dies ist derzeit eine bekannte Einschränkung für alle Betriebssysteme und würde ein umfangreiches Redesign erfordern, um dieses Problem zu beheben. Eine dynamische Anpassung ist nicht möglich, da die Bibliothek, die das Rendern durchführt, wissen muss, auf welchem ​​Bildschirm Sie sich befinden, und sich dynamisch anpassen muss. Angenommen, Sie haben auf einem Bildschirm die Hälfte eines Fensters und auf einem anderen die Hälfte eines Fensters - es würde nicht wissen, welches Sie auswählen sollen.

Einrichten mehrerer X-Bildschirme:

  1. Starten Sie X und konfigurieren sudo dpkg-reconfigure -phigh xserver-xorg Sie es neu. Befolgen Sie die Schritte, um die primäre Anzeige einzurichten. (Ich kenne keine Möglichkeit, diesen bestimmten Schritt von CLI aus auszuführen.)
  2. Öffnen Sie ein Terminal und
    lspci
    Daraufhin sollten Sie eine Liste Ihrer Geräte und deren Bus-IDs erhalten. Suchen Sie die Grafikkarte und notieren Sie die Bus-IDs.
  3. Machen Sie eine Kopie Ihres xorg.confwie xorg.conf.origvielleicht , und öffnen Sie es:sudo vi /etc/X11/xorg.conf
  4. Lesen Sie dies, BEVOR Sie fortfahren , um sicherzustellen, dass Sie es beliebig anpassen können.
  5. Machen Sie nun zwei DeviceAbschnitte und listen Sie die BusIDKarte auf, die geteilt werden soll, und listen Sie den Treiber auch so auf:

    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. Erstellen Sie nun zwei ScreenAbschnitte (mit den Parametern Ihrer Wahl, das einzige, was übereinstimmen muss, ist der Devicein diesem Abschnitt auf den Identifierim vorherigen Abschnitt ) als:

    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. Machen Sie nun einen MonitorAbschnitt für jeden Monitor als:

    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. Aktualisieren Sie abschließend den ServerLayoutAbschnitt, um beide Abschnitte zu verwenden und zu positionieren Screen:

    Section "ServerLayout"
        ...
        Screen         0 "Screen0" 
        Screen         1 "Screen1" leftOf "Screen0"
        ...
    EndSection
    
  9. Starten Sie X neu und drücken Sie die Daumen! Wenn es funktioniert, fahren Sie mit der Feinabstimmung fort, so oft Sie möchten.

JETZT FÜR DEN SUBPIXEL-RENDER-AUFTRAG Nehmen Sie diese Änderung font.confentweder in ~/font.confoder / etc / X11 / font.conf` vor. bgr

Ashhar Hasan
quelle
Ich füge die Schritte hinzu, wie es geht. Aber lasst uns hoffen, dass jemand mit einer großartigen Möglichkeit kommt, das zu tun, was Sie brauchen.
Ashhar Hasan
Scheint, als hätte auch ich einen Block getroffen. Ich kann zwar verschiedene Schriftpfade in angeben, Xorg.confaber es scheint keine Pfade für verschiedene font.confDateien auszuwählen . :(
Ashhar Hasan