Linux

唯一標識用於 xrandr 的 DP 監視器

  • February 6, 2019

我通過 DisplayPort* 插入了 2 台顯示器,分別命名為DP1DP2.

我將它們彼此相鄰配置,如下所示:

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

問題:有時,它們在啟動時以相反的順序被檢測到,因此左側顯示器被標記DP2,而右側顯示器則變為DP1。這是隨機的,所以每次啟動後我都需要檢查並最終重新配置佈局。

因此,我正在尋找一種方法來可靠地檢測哪個顯示器是哪個顯示器,在重新啟動時。例如,有沒有辦法確定哪個埠 ID 對應於哪個分配的監視器名稱?

我在拱門上。FWIW,Windows 10 正確記住了該順序。

*如果這很重要,我正在使用通過 Thunderbolt 連接的戴爾塢站。

您也許可以將 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 擷取的“庫”)

的輸出xrandr以 16 字節的十六進制行顯示 EDID 字節,這就是為什麼您可能需要-A2為每個監視器獲取其前 32 個字節的原因。(有關 EDID 塊的描述,請參見例如wikipwedia)。

引用自:https://unix.stackexchange.com/questions/498888