唯一标识用于 xrandr 的 DP 监视器

唯一标识用于 xrandr 的 DP 监视器

我有 2 个通过 DisplayPort* 插入的显示器,名为DP1DP2

我将它们配置为彼此相邻,如下所示:

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

问题:有时,启动时会以相反的顺序检测到它们,因此左侧显示器会被标记DP2,而右侧显示器则会被DP1标记。这是随机的,因此每次启动后我都需要检查并最终重新配置布局。

因此,我正在寻找一种方法来可靠地检测哪个显示器是哪个,在重新启动时。例如,有没有办法确定哪个端口 ID 对应于哪个分配的监视器名称?

我在阿奇。 FWIW,Windows 10 正确记住了顺序。

*如果重要的话,我正在使用通过 Thunderbolt 连接的戴尔坞站。

答案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 捕获“库”)

输出xrandr以 16 字节的十六进制行显示 EDID 字节,这就是为什么您可能需要-A2获取每个显示器的前 32 个字节。 (参见例如维基百科有关 EDID 块的描述)。

相关内容