VividBrightness
开源的 macOS XDR/EDR 亮度增强工具。
下载最新版 DMG
·
简体中文
VividBrightness 是一款原生 macOS 菜单栏应用,可提高兼容 XDR 和 EDR 显示器的物理光输出。它通过使用 Apple 的 Extended Dynamic Range compositor 和 16 位浮点 Metal 覆盖层,为 MacBook Pro Liquid Retina XDR 及其他受支持的显示器提供高达 2.0 倍的亮度乘数。它不会修改显示器的 Gamma 曲线。
## 为什么选择 VividBrightness?
- **真正的 XDR/EDR 输出:** 使用显示器的亮度空间,而不是通过修改 Gamma 让图像看起来更亮。
- **精确控制:** 选择从 1.0x 到 2.0x 的任意级别,或使用 +25%、+50%、+75% 和 +100% 预设。
- **原生且轻量:** 使用 AppKit 和 Metal 构建,驻留在菜单栏,没有任何分析或网络请求。
- **感知显示器:** 自动仅针对向 macOS 暴露 EDR 空间的屏幕生效。
- **可靠的生命周期:** 唤醒后恢复覆盖层,并在禁用或退出时立即将其移除。
## 兼容性
需要支持 Metal 的 Mac。实际可用的亮度由 macOS 和显示器控制;该应用无法在不支持的硬件上创建 EDR 空间。
## 下载并安装
1. 从 [最新版 GitHub Release](https://github.com/cold-summer/VividBrightness/releases/latest) 下载 Apple Silicon 版本的 `.dmg`。
2. 打开 DMG 文件并将 `VividBrightness.app` 拖入应用程序(Applications)文件夹。
3. 由于当前二进制文件是 ad-hoc 签名且未经 Apple 公证,请在终端中运行一次以下命令:
```
xattr -dr com.apple.quarantine /Applications/VividBrightness.app
open /Applications/VividBrightness.app
```
此发布版本还包含 ZIP 备选格式和 SHA-256 校验文件。请使用以下命令验证下载:
```
shasum -a 256 -c VividBrightness-v1.0.0-macOS-arm64.dmg.sha256
```
## 工作原理
VividBrightness 使用 `RGBA16Float` 像素渲染一个扩展线性 Display P3 Metal 表面,并将该图层加入到 EDR 中。一个具有点击穿透特性的全屏窗口通过 multiply compositing 应用该表面,允许高于 SDR 白色的值使用由 macOS 管理的亮度空间。
这是一种 XDR/EDR 亮度增强功能,而不是对比度滤镜或软件 Gamma 调整。有关渲染 pipeline、生命周期和系统限制,请参阅[架构](docs/ARCHITECTURE.md)。
## 从源码构建
安装 Xcode Command Line Tools,然后运行:
```
git clone https://github.com/cold-summer/VividBrightness.git
cd VividBrightness
make check
make build
open .build/VividBrightness.app
```
无需编辑被追踪的文件即可覆盖构建元数据:
```
BUNDLE_IDENTIFIER=io.github.example.VividBrightness \
MARKETING_VERSION=1.0.0 \
BUILD_NUMBER=1 \
SIGN_IDENTITY="Developer ID Application: Example" \
make build
```
## 硬件测试
真正的 EDR 集成测试必须在连接到兼容 XDR/EDR 显示器且处于解锁状态的 Mac 上运行:
```
make test-edr
```
要在不启用覆盖层的情况下检查当前和潜在的 EDR 空间:
```
make diagnose
```
## 限制与安全
- 当屏幕锁定、使用电池供电或处于散热压力下时,macOS 可能会减少 EDR 空间。
- 持续的高亮度会增加功耗和显示器温度;在进行长时间操作时,请使用 +25% 或 +50%。
- 报告的 EDR 空间代表系统容量,而不是所选的亮度乘数。
- 全局 `Command + Shift + B` 快捷键在某些系统上可能需要输入监控(Input Monitoring)权限;菜单栏控制则不需要。