Ustawianie renderowania subpikseli na różnych monitorach

16

Używam podwójnych monitorów, z których jeden jest obrócony o 90 stopni. Funkcja antyaliasingu czcionek nie wygląda poprawnie na obróconym monitorze (tzn. Wokół znaków są obramowania tęczy).

Wierzę, że dzieje się tak, ponieważ X używa tej samej kolejności renderowania subpikseli na obu monitorach. Czy istnieje sposób skonfigurowania różnych zamówień renderowania podpikseli dla każdego monitora? (tj. monitor 1 = RGB, a monitor 2 = vRGB).

scaramouche
źródło
Wygląda na to, że nie jest to jeszcze możliwe (brak oprogramowania). Zobacz to dla czegoś związanego.
Ashhar Hasan,

Odpowiedzi:

4

Musisz skonfigurować ekrany jako osobne ekrany X, a nie jako wspólny pulpit. Ubuntu powinien następnie umożliwić dostosowanie kolejności subpikseli dla poszczególnych ekranów X.

W przeciwnym razie co stałoby się z oknem obejmującym dwa urządzenia wyświetlające o różnych zamówieniach subpikseli? Lub nawet trudniejsze, dwa wyświetlacze w trybie klonowania z różnymi porządkami fizycznymi (RGB vs BGR).

Jest to znane ograniczenie dla wszystkich systemów operacyjnych i wymagałoby poważnego przeprojektowania, aby je naprawić. Dostosowanie dynamiczne nie jest możliwe, ponieważ biblioteka wykonująca rendering musiałaby wiedzieć, na którym ekranie się znajdujesz, i dostosować dynamicznie. Ponadto załóżmy, że masz połowę okna na jednym ekranie, a połowę na drugim - nie wiedziałby, który wybrać.

Konfigurowanie wielu ekranów X:

  1. Uruchom i ponownie skonfiguruj X. sudo dpkg-reconfigure -phigh xserver-xorg Postępuj zgodnie z instrukcjami, aby skonfigurować główny ekran. (Nie znam sposobu na wykonanie tego konkretnego kroku z poziomu interfejsu CLI)
  2. Otwórz terminal, który
    lspci
    powinien dać ci listę twoich urządzeń i ich identyfikatorów magistrali. Znajdź kartę graficzną i zapisz identyfikator autobusu.
  3. Zrób kopię swojego, xorg.confjak xorg.conf.origbyć może i otwórz:sudo vi /etc/X11/xorg.conf
  4. Przeczytaj to ZANIM przejdziesz dalej, aby upewnić się, że możesz go dostosować tak, jak chcesz.
  5. Teraz utwórz dwie Devicesekcje i podaj BusIDkartę, którą chcesz udostępnić, a także sterownik w następujący sposób:

    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. Teraz utwórz dwie Screensekcje (oczywiście z wybranymi parametrami, jedyną rzeczą, którą należy dopasować, jest Deviceta sekcja do Identifierpoprzedniej) jako:

    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. Teraz utwórz Monitorsekcję dla każdego monitora jako:

    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. Na koniec zaktualizuj ServerLayoutsekcję, aby użyć i ustawić obie Screensekcje:

    Section "ServerLayout"
        ...
        Screen         0 "Screen0" 
        Screen         1 "Screen1" leftOf "Screen0"
        ...
    EndSection
    
  9. Uruchom ponownie X i trzymaj kciuki! Jeśli to działa, dostosuj go tak, jak chcesz.

Teraz dla subpiksel rendering ZAMÓW to zrobić zmiany font.confzarówno w ~/font.conflub / etc / X11 / font.conf`. bgr

Ashhar Hasan
źródło
Dodam kroki, jak to zrobić. Ale miejmy nadzieję, że ktoś ma świetny sposób na robienie tego, czego potrzebujesz.
Ashhar Hasan,
Wygląda na to, że ja też uderzyłem w blok. Chociaż mogę określić różne Xorg.confścieżki czcionek, ale wydaje się, że nie wybiera ścieżek dla różnych font.confplików. :(
Ashhar Hasan,