異なるモニターで異なるサブピクセルレンダリングを設定する

異なるモニターで異なるサブピクセルレンダリングを設定する

私はデュアル モニターを使用しており、そのうち 1 つは 90 度回転しています。回転したモニターではフォントのアンチエイリアシングが正しく表示されません (つまり、文字の周囲に虹色の境界線が表示されます)。

これは、X が両方のモニターで同じサブピクセル レンダリング順序を使用しているためだと思います。各モニターに異なるサブピクセル レンダリング順序を構成する方法はありますか? (つまり、モニター 1 = RGB、モニター 2 = vRGB)。

答え1

ディスプレイを共有デスクトップではなく、個別の X スクリーンとして構成する必要があります。Ubuntu では、個々の X スクリーンのサブピクセル順序を調整できるようになります。

そうでなければ、サブピクセル順序が異なる 2 つのディスプレイ デバイスにまたがるウィンドウではどうなるでしょうか。あるいは、さらに厄介なのは、物理的な順序が異なる (RGB と BGR) クローン モードの 2 つのディスプレイです。

これは現在すべてのオペレーティング システムで既知の制限であり、修正するには大幅な再設計が必要になります。レンダリングを実行するライブラリは、どの画面にいるかを認識して動的に調整する必要があるため、動的な調整は実現可能ではありません。さらに、ウィンドウの半分が 1 つの画面に表示され、残りの半分が別の画面に表示されるとすると、どちらを選択すればよいかわかりません。

複数の X スクリーンの設定:

  1. X を起動して再構成します。 sudo dpkg-reconfigure -phigh xserver-xorg 手順に従ってプライマリ ディスプレイを設定します。(この特定の手順を CLI から実行する方法についてはわかりません)
  2. ターミナルを開くと、
    lspci
    デバイスとそのバス ID のリストが表示されます。グラフィック カードを見つけて、そのバス ID を書き留めます。
  3. xorg.confおそらく、あなたのコピーを作成しxorg.conf.origてそれを開きます:sudo vi /etc/X11/xorg.conf
  4. これを読む 前に必要に応じてカスタマイズできることを確認します。
  5. ここで 2 つのDeviceセクションを作成し、BusID共有するカードのリストとドライバーを次のようにリストします。

    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. 次に、次のように 2 つのScreenセクションを作成します (もちろん、任意のパラメーターを使用します。一致する必要があるのは、Deviceこのセクションの とIdentifier前のセクションの だけです)。

    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. 次に、Monitor各モニターのセクションを次のように作成します。

    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. 最後に、ServerLayout両方のセクションを使用するようにセクションを更新し、配置しますScreen

    Section "ServerLayout"
        ...
        Screen         0 "Screen0" 
        Screen         1 "Screen1" leftOf "Screen0"
        ...
    EndSection
    
  9. X を再起動して、幸運を祈ります。うまくいったら、好きなだけ微調整を続けてください。

サブピクセルレンダリング順序について この変更は、または /etc/X11/font.conf で行いfont.confます~/font.conf。bgr

答え2

もう 1 つの解決策は、すべての LCD 画面のピクセルの向きが同じではなくなったことを考慮して、アンチエイリアシングをサブピクセルではなくグレースケールに設定することです。

私は gnome-tweaks -> fonts -> antialiasing -> standard でそれを実行しました。私の場合は問題なく動作しました。鮮明さを優先する場合は、「なし」に設定することもできます。

関連情報