xrandrのDPモニターを一意に識別します。

xrandrのDPモニターを一意に識別します。

DP1DisplayPort*を介して2つのモニターが接続されていますDP2

私は次のように互いに隣り合っていました。

xrandr --output DP1 --pos 0x0 --output DP2 --pos 3840x0

問題:時には起動時に逆順に検出され、左側のモニターにフラグが立てられ、DP2右側のモニターにDP1フラグが立てられます。これはランダムなので、起動するたびにレイアウトを確認して最終的に再構成する必要があります。

そのため、再起動時にどのモニタがどのモニタであるかを確実に検出する方法を探しています。たとえば、割り当てられたモニタ名に対応するポートIDを確認する方法はありますか?

私はArchieにいます。 FWIW、Windows 10は順序を正しく覚えています。

*重要な場合は、Thunderboltを介して接続されたDellドックを使用しています。

答え1

ディスプレイにEDIDブロックを使用することもできます。たとえば、必要な方法でシステムを設定してから、次のようにします。

$ xrandr --prop | grep -A2 EDID > desired-setup.txt

その後、設定が完了するたびに次のタスクを実行します。

$ xrandr --prop | grep -A2 EDID > current-setup.txt

それからcurrent-setup.txtと同じなら、desired-setup.txtすべてが大丈夫です。それ以外の場合は、交換したDP1とDP2を使用して代替設定を作成する必要があります。

この方式は、モニターのEDIDレポートが一意である場合にのみ機能します。ここで、最初の18バイトには、製造元ID、製品コード、およびシリアル番号(バイト12〜15)、製造週、および年が含まれます。もちろん、特定のモニタでのみ動作します。 (より柔軟性が必要な場合は、高度な決定ロジックとEDIDキャプチャ「ライブラリ」が必要です)

出力には16バイトの16進行のEDIDバイトが表示されるため、各ディスプレイの最初の32バイトを取得する必要がxrandrあります。-A2(例えばウィキペディアEDIDブロックの説明)。

関連情報