多块显示器亮度同步

先给结论: 一条滑条驱动所有显示器是可以做到的,Candela 就有这么一条。 但把数字调成一样,不等于把调成一样。多块不同型号的屏摆在一起时, 差异在最低端极其明显——一块还能看清,旁边那块看着像关机了。 解决它需要一次性的、逐屏的、用眼睛完成的校准。

一次调动所有屏幕

打开 Candela 的面板,用 Combined 滑条。它驱动所有已连接的显示器; 把亮度键的作用目标设为「所有屏幕作为一个整体」也是同一件事。

Candela 面板:每块屏各自的滑条,以及驱动全部屏幕的 Combined 滑条。
Candela 面板:每块屏各自的滑条,以及驱动全部屏幕的 Combined 滑条。

合并后的量是一个比例而不是绝对值,所以有额外亮度余量的屏用它自己的余量, 没有的那块也不必假装有。夹紧发生在合并量上而不是逐屏进行—— 这正是「一块屏见了底停住、另一块还在 40,之后再也回不到一致」这种情况不会发生的原因。

对多数桌面——两块相近的显示器、都接受 DDC——到这里就够了。

为什么同一个百分比看起来不一样

接下来是让人意外的部分。

两块面板在「50%」下发出的光并不相同。它们在满亮度下的输出不同, 背光下降时的响应也不同,而 macOS 这两件事都不告诉你。 向它查询显示器的绝对亮度,得到的东西没法用: 这个功能所针对的那张桌子上的两台显示器,都报告 EDR 余量为 1.0、参考值为 0.0, 意思是「标准动态范围,无可用数值」。没有色度计就没有可归一化的依据。

失配在最低端最严重,而且原因很具体:

把两者都发到 0%,一块还能读,另一块像关了。这不是滑条的 bug, 而是两种不同的物理机制被喂了同一个数字。

Candela 已经修正了软件调光的曲线形状: gamma 缩放改的是信号,面板会在其上再施加大约 2.2 的传输函数, 所以把信号减半得到的是约 22% 的光,而不是 50%。 Candela 把信号取该指数的倒数次幂,让软件路径回到和硬件路径相同的亮度曲线上。 这条修正解决不了的,是每块面板各自的「底」在哪里。

校准这个下限

所以用眼睛当仪器。每块屏大约三十秒,只做一次。

  1. Combined 滑条拉到最低。此刻你的显示器之间差异最大。
  2. 点进那块太暗——或太亮——的显示器,打开它的页面。
  3. 拖动 Combined brightness 滑条。这块屏会实时跟随, 所以你是在和旁边那台直接对比。
  4. 看起来一致时松手。就这样:数值已保存,这块屏也会被放回你开始之前的亮度。
Candela 中某块显示器页面上的合并亮度下限控件。
Candela 中某块显示器页面上的合并亮度下限控件。

从此以后,合并滑条和亮度键都会让每块屏走它自己的下限。 它们会一起抵达最低点,回升时也保持一致。

这个设置按物理显示器保存,拔插重连后仍在; 并且只在接了不止一块屏时才出现——只有一块屏时没有可对比的对象。

刻意不做校准的地方

顶端。满亮度就是各自面板的最大值。

这是所有人把滑条推到顶时期待的结果;为了迁就一块偏暗的屏而压住一块更亮的屏, 是在扔掉你花钱买来的亮度。这里要匹配的是范围,不是绝对输出—— 真想把某块更亮的屏压下来,它自己的滑条就在那儿。

未校准的显示器行为和「没有下限这回事」之前逐点相同, 所以本来就已经匹配好的桌面不会因为升级而变差。

跟随内置屏

如果你想要的是外接显示器随环境光跟着 MacBook 自己的亮度走, 那是另一回事——自动亮度——而这方面 Lunar 在 macOS 上做得比谁都好。 Candela 有一个自动亮度跟随模式,但没有环境光传感器曲线、没有位置模式、 也没有快捷指令自动化。它不打算在这块竞争。

相关

下载 Candela —— 免费、开源、macOS 26。