兩個 App 搶同一個顯示設定時,會發生什麼
亮度自己會變。你設好的顏色,一小時後不對了。設定裡什麼都沒動——因為另一件工具正在往同一個地方寫,而雙方都不知道。
第二個工具可以寫的地方不止一處
顯示狀態不是一個值,而是一組各自獨立的領域。每一個都可能被另一個工具悄悄寫入:一個選單列 App、一個輔助程序、一段腳本。雙方都以為這塊歸自己管。
辨識對方才是難的部分
按顯示名稱比對並不可靠。廠商常常同時裝一個選單列 App 和若干輔助程序,而輔助程序往往根本沒有可用的名稱。所以可靠的信號是bundle identifier 的前綴;對於 bundle id 沒有公開文件的工具,再用精確的在地化名稱做第二輪比對。
為什麼「漏掉」比「誤報」好
兩輪都沒比對上的工具會維持未被發現,這是有意為之:一條永不觸發的警告,好過一條誤報到無關程序的警告。一條你學會忽略的衝突警告,比沒有警告更糟。
該怎麼做
- 如果兩個 App 都聲稱管亮度,選一個,關掉另一個。它們之間沒有任何仲裁協議——後寫的贏,而誰在後寫取決於時序。
- 去查輔助程序,不要只看選單列裡那個 App。真正寫入的常常是輔助程序。
- 如果漂移發生在喚醒之後或顯示器重連之後,那多半不是衝突,而是一塊需要一點時間才能重新回應的面板。
誠實的邊界
- 這一頁講的是某一個實作如何發現對手。它不是一個標準,也看不見 bundle id 和名稱都比對不上的工具。
- 「後寫的贏」是描述,不是保證。兩個工具交錯寫入,可能得到一個雙方都沒想要的狀態。