私のLinuxボックスにはNvidia GT710 GPUに接続された2台のモニター(1台のHDMI、1台のDVI)があります。
SSH経由で私のボックスにログインして実行すると、
xeyes
常に同じ画面で実行されます。echo $DISPLAY
戻ってきたので、この画面の名前を知っています。:0
:0.0
私が読んだことによれば、Xウィンドウを左右のモニターにそれぞれ使用して位置を指定できるようにしたいと思います:0.1
。についても同様です:1
。
DISPLAY=:0.0 xeyes
左画面にxeyeが表示されますが、次のようになります。
~$ DISPLAY=:0.1 xeyes
Error: Can't open display: :0.1
リストを見れば私の右モニターの名前が何なのかわかると思いましたが/tmp/.X11-unix/
、
~$ ls /tmp/.X11-unix/
X0
それでは、このセカンダリディスプレイで何をすべきか、どうすればよいかを知っていますか?
PS。 ArchWikiで説明されているように、画面間でウィンドウを移動できなくても構いません。https://wiki.archlinux.org/title/Multihead#Separate_screens。これは私にとってうまくいきますが、これを達成する方法は明確ではありません。
答え1
:0.0と:0.1を使用してXウィンドウを左右のモニターに配置できるようにしたいです。
これは、左右のモニタが実際に2つのモニタを使用している場合にのみ機能します。Xスクリーン、通常は直接設定しないと表示されません。
基本的に、今日のほとんどのシステムではシネラマ、これはあなたがXスクリーン両方xrandr
の出力は、異なる位置の同じフレームバッファから読み出されます。
しかし、あなたのシステムがどのように構成されているかを教えてくれる人はあなただけです(/var/log/Xorg.log
詳細についてはお読みください)。
エラー:表示::0.1を開くことができません。
これは上記の仮定を確認します。 2つのX画面がありません。
それでは、このセカンダリディスプレイで何をすべきか、どうすればよいかを知っていますか?
出力を見て、xrandr
2つがあることを確認してください。出力同じフレームバッファに接続されます(つまり、以下にリストされているすべての項目Screen 0
)。
その場合は、ウィンドウを左側または右側のモニター(または同時に両方のモニター、左側の半分、右側の半分)に表示するようにウィンドウをどこかに配置する必要があります。
あなたのウィンドウマネージャ(WM)は、ほとんどの最新のディストリビューションでデスクトップ環境に統合され、ウィンドウの場所に影響を与える可能性があり、正しく設定すると、目的の場所に配置して監視するのに役立ちます。
多くの(すべてではありませんが)Xアプリケーションもこのオプションをサポートしています-geometry
(マンページを読む)。このオプションはウィンドウをどこかに再配置しますが、WMはこのオプションを自由に無視できるため、うまくいかない場合はこれが理由です。
最新のデスクトップシステムを実行せず、ウィンドウマネージャも使用しない場合(何十年も前にすべてがそうしました。意味はウィンドウマネージャがある場合は、コマンドラインを使用して個々のウィンドウの位置を個別に指定してサイズを変更する必要があります(現在の設定で表示される画面も決まります)。ウィンドウのサイズ変更や移動はできません。など(もしできるそうすれば、気付かなくてもどこかに少しのWMがあるでしょう。
あなたもできる各出力に1つずつ2つの画面を使用するようにXを設定します。カスタムxorg.conf
ファイルが必要です。以下は、1つのHDMI3画面を持つIntelハードウェアに使用するファイルです(それで、しばらく前にテレビを接続したときに2つの画面があるのが合理的でした)。
Section "Device"
Identifier "intel0"
Driver "intel"
Option "AccelMethod" "sna"
Option "ZaphodHeads" "VGA1,HDMI1,DP1"
Screen 0
EndSection
Section "Device"
Identifier "intel1"
Driver "intel"
Option "AccelMethod" "sna"
Option "ZaphodHeads" "HDMI3"
Screen 1
EndSection
Section "Screen"
Identifier "screen0"
Device "intel0"
EndSection
Section "Screen"
Identifier "screen1"
Device "intel1"
EndSection
Section "ServerLayout"
Identifier "default"
Screen "screen0" 0 0
Screen "screen1" Below "screen0"
EndSection
ハードウェアと要件に合わせて調整する必要があります。ハードウェアごとに異なるオプションが必要になることがあります(たとえば、私がこれを実行したときに、IntelハードウェアにはAccelMethodとZaphodHeadsが必要でした)。これを行うにはかなりの時間がかかることが予想されます。