Tech
[分享创造] 同型号的两台显示器,系统怎么分清谁是谁:聊聊按 EDID 认屏的几个坑
做 LayoutKeeper 的时候,我以为最难的是把窗口搬回原来的桌面(前面两篇日志写过这个)。后来发现,排第二难的是一个看起来很 trivial 的问题:**怎么认出"这是哪块屏"**。 LayoutKeeper 是个 macOS 菜单栏小工具(开源 GPL-3.0 ),干的事很简单:记住外接屏上每个窗口的位置和它所在的 Mission Control 桌面,拔线再插回来时一键还原。家里和公司各一块屏,就得各存一份布局——认错了屏,恢复出来的就是另一套布局,灾难。 macOS 给每个显示器分配的 `CGDirectDisplayID`,拔插一次就可能变,根本不能当身份证用。真正靠谱的是 EDID:显示器固件里的一小块数据,里面有厂商 ID 、型号、序列号。我一开始的做法是直接拿"厂商+型号+序列号"拼成 key ,每块屏一份布局文件,存在本机 `~/Library/Application Support/LayoutKeeper/` 里,JSON ,明文,谁都能打开看。 然后翻车了,而且是连环翻车: **翻车一:有些屏的序列号是假的。** 不少便宜显示器 EDID 里的序列...
Read the full discussion on V2EX
This article was aggregated from V2EX. Click to join the conversation.
View on V2EX