Einstellen unterschiedlicher Subpixeldarstellung auf unterschiedlichen Monitoren

Einstellen unterschiedlicher Subpixeldarstellung auf unterschiedlichen Monitoren

Ich verwende zwei Monitore, einer davon ist um 90 Grad gedreht. Die Kantenglättung der Schriftarten sieht auf dem gedrehten Monitor nicht richtig aus (d. h. um die Zeichen herum sind Regenbogenränder).

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

Antwort1

Sie müssen Ihre Displays als separate X-Bildschirme konfigurieren, nicht als gemeinsam genutzten Desktop. Ubuntu sollte Ihnen dann ermöglichen, die Subpixel-Reihenfolge für einzelne X-Bildschirme anzupassen.

Was würde sonst mit einem Fenster passieren, das sich über zwei Anzeigegeräte mit unterschiedlicher Subpixel-Reihenfolge erstreckt? Oder, noch schwieriger, zwei Displays im Klonmodus mit unterschiedlicher physikalischer Reihenfolge (RGB vs. BGR).

Dies ist derzeit eine bekannte Einschränkung aller Betriebssysteme und es wäre eine umfassende Neugestaltung erforderlich, um sie zu beheben. Eine dynamische Anpassung ist nicht möglich, da die Bibliothek, die das Rendering durchführt, wissen müsste, auf welchem ​​Bildschirm Sie sich befinden, und sich dynamisch anpassen müsste. Angenommen, Sie haben die Hälfte eines Fensters auf einem Bildschirm und die andere Hälfte auf einem anderen – die Bibliothek wüsste nicht, welches sie wählen soll.

Einrichten mehrerer X-Screens:

  1. Starten Sie X und konfigurieren Sie es neu. sudo dpkg-reconfigure -phigh xserver-xorg Folgen Sie den Schritten zum Einrichten des primären Displays. (Ich kenne keine Möglichkeit, diesen bestimmten Schritt über die Befehlszeilenschnittstelle auszuführen.)
  2. Öffnen Sie ein Terminal.
    lspci
    Sie erhalten eine Liste Ihrer Geräte und deren Bus-IDs. Suchen Sie die Grafikkarte und notieren Sie sich deren Bus-IDs.
  3. Machen Sie eine Kopie Ihres xorg.confAs- xorg.conf.origMaybe und öffnen Sie diese:sudo vi /etc/X11/xorg.conf
  4. Lesen Sie dies VORFahren Sie fort, um sicherzustellen, dass Sie es so weit anpassen können, wie Sie möchten.
  5. Erstellen Sie nun zwei DeviceAbschnitte und listen Sie die BusIDgemeinsam zu nutzende Karte sowie den Treiber wie folgt 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 (natürlich mit den Parametern Ihrer Wahl, das einzige, was Devicein diesem Abschnitt mit dem Identifierim vorherigen übereinstimmen muss) wie folgt:

    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. Erstellen Sie nun Monitorfür jeden Monitor einen Abschnitt wie folgt:

    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 Abschnitt, um beide Abschnitte ServerLayoutzu 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, können Sie nach Belieben weitere Feineinstellungen vornehmen.

JETZT ZUR SUBPIXEL-RENDERREIHENFOLGE Nehmen Sie diese Änderung font.confentweder in ~/font.confoder in /etc/X11/font.conf` vor. bgr

Antwort2

Eine andere Lösung besteht darin, das Antialiasing auf Graustufen statt auf Subpixel einzustellen, da nicht mehr alle Ihre LCD-Bildschirme die gleiche Pixelausrichtung haben.

Ich habe das mit Gnome-Tweaks -> Schriftarten -> Antialiasing -> Standard gemacht. Funktioniert bei mir einwandfrei. Sie können es auch auf „Keine“ einstellen, wenn Sie Schärfe bevorzugen.

verwandte Informationen