外接屏文字发虚
在 Mac 上,外接屏文字发虚多数时候不是面板的问题,而是模式的问题。同一个标称分辨率往往存在两份——一份做了 HiDPI 缩放,一份是 1:1 原生——其中一份在文字上明显更差。
同一个分辨率,两种模式
下面这份清单来自一台 32 寸 4K 面板(UP32R7-A,DisplayPort)在 Mac 上的实际输出(用 --list-modes):
UP32R7-A (当前 3008 × 1692 · HiDPI · 120 Hz)
原生 3840 × 2160
HiDPI 3360 × 1890
原生 3360 × 1890
HiDPI 3200 × 1800
原生 3200 × 1800
HiDPI 3008 × 1692
原生 3008 × 1692
HiDPI 2560 × 1440
原生 2560 × 1440
注意 3360×1890、3200×1800、3008×1692、2560×1440 各出现了两次。标着 HiDPI 的那条走 2 倍缓冲区再缩放;标着 原生 的那条让面板就在这个像素数上工作——对一块 3840×2160 的面板来说是非整数缩放,这正是文字发虚的来源。
该怎么做
- 挑缩放分辨率时优先选 HiDPI 那条。在上面这份清单里,选「3008 × 1692 · HiDPI」而不是「3008 × 1692 · 原生」。桌面大小一样,文字更锐利。
- 系统设置里找不到想要的模式,不代表它不存在:macOS 藏起了很多。我们的应用会列出显示器真正上报的全部模式——包括被系统隐藏的 HiDPI 变体——并可以切过去(终端里是
--list-modes与--set-resolution,界面里是显示面板)。 - 如果面板本身像素密度就低,那没有软件能救。34 寸 3440×1440 大约是 110 PPI,27 寸 4K 约 163 PPI;在同样的桌面大小下,前者永远更软。
- 如果你需要 macOS 根本不提供的分辨率——自定义时序、虚拟屏、面板没上报的缩放——用 BetterDisplay。那正是它擅长的,我们不提供。这句话我们也写在对比页里。
为什么我们能说得这么具体
因为应用里本来就有这个诊断:当当前模式是 1:1、而同样尺寸存在 HiDPI 变体时,它会指出来并列出那个变体。这个检查之所以存在,是因为「大面板跑在 1:1」是导致文字读起来吃力的常见原因,而修好它通常只差一次模式切换。