
Crisp:macOS 外接显示器管理
项目地址:didriksg/Crisp
一台 2560×1440 显示器接到 Mac 后,原生分辨率的文字偏小,降低分辨率又容易发虚。Crisp 在菜单栏里增加 HiDPI 缩放模式,并把 DDC 亮度、显示器排列、ICC 配置和虚拟屏放进同一面板。
它会改动系统显示器覆盖文件。第一次给某台显示器启用 HiDPI 时,需要管理员授权;只想试一个普通菜单栏 App 的用户,应先理解这项系统级改动。

HiDPI 配置
Crisp 会为目标显示器生成覆盖配置,并写入:
/Library/Displays/Contents/Resources/Overrides/配置让 macOS 为这台屏幕列出额外的 Retina 式缩放模式。首次写入需要管理员密码,之后切换同一台显示器的分辨率不再重复授权。
这项机制与调整字体大小不同。应用看到的仍是一种系统显示模式,窗口、菜单和文本按缩放后的逻辑尺寸布局。项目目前要求 macOS 15 Sequoia 或更高版本;旧系统不在支持范围内。

亮度控制
外接显示器支持 DDC/CI 时,DDCService.swift 直接发送硬件亮度命令。经过不支持 DDC 的扩展坞、转换器或显示器时,程序可以回退到 Gamma 调整,用软件方式压低画面亮度。
两种结果需要分开判断:
- DDC 会改变显示器自身背光;
- Gamma 只改变输出画面的亮度曲线;
- Gamma 可以继续降低到硬件亮度下限以下,但暗部层次会随之减少;
- 键盘亮度键跟随鼠标所在屏幕,需要额外授予辅助功能权限。
辅助功能权限只服务于亮度键路由。分辨率、菜单栏滑条和其他显示管理功能不依赖这项权限。
显示预设
Crisp 的预设可以同时保存分辨率、亮度与显示器排列。办公桌、会议室和投影环境可以各建一组配置,再从菜单栏一次应用。

同一面板还提供以下项目:
- 切换主显示器并拖动排列位置;
- 切换 ICC 色彩配置;
- 调整 Gamma、对比度和 RGB 增益;
- 创建 HiDPI 虚拟显示器;
- 在 Apple Silicon 上断开和恢复物理显示器;
- 联动深色模式、Night Shift 与 True Tone。
功能是否可用仍取决于显示器、连接方式和 Mac 型号。尤其是 DDC、物理断开与 True Tone,不能只看菜单项是否出现。
安装方式
Homebrew Cask 提供了最短安装命令:
brew install --cask didriksg/tap/crisp也可以从 Release 下载 Crisp.dmg。当前安装包没有经过 Apple 公证,手动拖入 Applications 后,首次启动需要到“系统设置 → 隐私与安全性”选择“仍要打开”。项目说明称 Homebrew 安装可跳过这一步。
从源码构建需要 XcodeGen:
brew install xcodegen
git clone https://github.com/didriksg/Crisp.git
cd Crisp
xcodegen generate
open Crisp.xcodeproj仓库还提供只依赖 Command Line Tools 的 swiftc 编译方式,适合修改 Swift 源码后快速替换本机安装包。普通用户没有必要走这条开发流程。
测试方法
试用时可以固定同一台外接屏,记录以下结果:
- 原生分辨率与两个 HiDPI 模式下的逻辑尺寸;
- 浏览器正文、终端小字号和细线图标的清晰度;
- DDC 滑条是否改变硬件背光;
- 拔插扩展坞、睡眠唤醒后,预设是否仍能恢复;
- 禁用辅助功能权限后,哪些操作仍然有效。
若亮度滑条只有 Gamma 效果,先排查线材和扩展坞,不宜直接判断应用失效。显示器覆盖配置属于系统显示层改动,正式使用前应保留原始分辨率与排列记录。
Crisp 起源于 FreeDisplay,当前代码已经改写菜单面板、亮度处理和界面结构。项目历史只有一周,显示器兼容数据还不充分。依赖稳定多屏布置的生产机器,可以先在一台外接屏上跑完睡眠、拔插和重启测试,再迁移全部预设。