FabioD95/XDRPeak
GitHub: FabioD95/XDRPeak
一款 macOS 菜单栏工具,通过公开 API 激活 EDR 模式并调节 Gamma 转换表,在支持的 Apple XDR 显示屏上实现全系统通用的 1600 尼特峰值亮度。
Stars: 0 | Forks: 0
# XDRPeak
[](https://github.com/FabioD95/XDRPeak/actions/workflows/ci.yml)
[](LICENSE)
[](https://www.apple.com/macos/)
[](https://support.apple.com/en-us/HT211814)
## ✨ 功能
- **一键峰值亮度。** 从菜单栏或使用 `⌘⇧B` 切换,您的显示器将从约 500 尼特的 SDR 跳升至约 1600 尼特的 XDR 峰值亮度。
- **全系统通用。** 适用于任何应用程序 —— Safari、Mail、Xcode、Figma。不局限于 HDR 视频播放。
- **仅使用公共 macOS API。** 没有私有框架的侵入。该技术不会因 macOS 更新而失效。
- **默认安全。** `Panic: Restore gamma now` 菜单项和 `⌘⇧⌥B` 快捷键可随时将您的显示器恢复到原始颜色配置文件。退出应用程序或执行 `applicationWillTerminate` 时也会恢复 LUT。
- **抵抗 Night Shift 和 True Tone。** 5 秒看门狗会在 macOS 悄悄重置 gamma 表时重新应用增强效果。
- **芯片感知。** 自动选择安全的增强系数:M1/M2 上为 1.59,M3/M4/M5 上为 1.535。
- **轻量级设计。** 菜单栏实用工具,无 Dock 图标,无主窗口。干净退出,不留驻后台守护进程或登录项。
## 🚀 快速开始
在此期间,请[从源代码构建](#%EF%B8%8F-build-from-source)。
安装后:
1. 启动 XDRPeak。菜单栏中会出现一个太阳图标。
2. 按下 `⌘⇧B` 或点击图标 → **Bright Boost: On**。
3. 查看显示器。白色现在已进入 XDR 峰值范围。
4. 再次按下 `⌘⇧B` 或退出应用程序以恢复正常的 SDR。
如果显示器亮度滑块设置得非常低,macOS 将不允许进入 EDR 模式,并且 XDRPeak 会静默中止操作。请调高亮度后重试。
## 🧠 工作原理
XDRPeak 协调了两个公共 macOS API:
1. 使用 Metal 渲染的 1×1 不可见 HDR 像素将显示器切换到 **EDR (Extended Dynamic Range)** 模式,解锁标准 100 尼特 SDR 上限之上的空间。
2. 通过 `CGSetDisplayTransferByTable`,将显示器的 gamma 转换表乘以一个适度的系数(根据芯片为 1.59 或 1.535)。
在 EDR 模式激活的情况下,高于 1.0 的输出值现在会被渲染到解锁的空间中 —— 屏幕上的每个像素都被提升了。
预飞行空间轮询防止在 EDR 启动前应用 gamma > 1.0(否则会将所有内容饱和变白)。一个 5 秒的看门狗会重新应用增强,以抵消 Night Shift、True Tone 和屏幕参数更改引起的静默 LUT 重置。
有关完整的技术说明 —— 状态机、组件、设计决策、限制 —— 请参阅 [`ARCHITECTURE.md`](ARCHITECTURE.md)。
## 🛠️ 从源代码构建
**要求**
- macOS 14 Sonoma 或更高版本
- Xcode 15 或更高版本
- 配备 XDR 显示屏的 Apple Silicon Mac(内置 Liquid Retina XDR 的 MBP 14"/16" 2021+、Pro Display XDR 或 Studio Display)
**步骤**
```
git clone https://github.com/FabioD95/XDRPeak.git
cd XDRPeak
open XDRPeak.xcodeproj
```
在 Xcode 中:选择 **XDRPeak** scheme,然后按 `⌘R` 进行构建并运行。
首次运行将提示使用您的本地 Apple ID 进行签名 —— 这对于未签名的开发版本来说是正常的。
或者从命令行运行:
```
xcodebuild -project XDRPeak.xcodeproj -scheme XDRPeak -configuration Release build
```
**运行测试**
```
xcodebuild -project XDRPeak.xcodeproj -scheme XDRPeak \
-destination 'platform=macOS' test
```
## 📜 许可证
XDRPeak 根据 **GPL-3.0-or-later** 授权。有关全文,请参阅 [`LICENSE`](LICENSE)。
GPL 具有“传染性”:任何衍生作品也必须根据 GPL-3.0 授权。这继承自 [starkdmi/BrightXDR](https://github.com/starkdmi/BrightXDR),在本项目中是不可协商的。
## 致谢
XDRPeak 建立在几个开创了此处所用技术的开源项目的工作之上。它们的代码均未被捆绑或重新分发 —— 这些技术是独立重新实现的,以下致谢属于知识产权归属。有关全文,请参阅 [`NOTICE`](NOTICE)。
- **[starkdmi/BrightXDR](https://github.com/starkdmi/BrightXDR)** ——
菜单栏实用程序模型和 GPL-3.0 继承。
- **[niklasr22/BrightIntosh](https://github.com/niklasr22/BrightIntosh)** ——
1×1 HDR 像素触发器、各芯片的 gamma 系数和 EDR 清除颜色公式。
- **[alin23/Lunar](https://github.com/alin23/Lunar)** —— 预防全白屏失败模式的预飞行轮询背后的 EDR 空间分析。
由 [Fabio Del Rio](https://github.com/FabioD95) 制作。有任何问题、Bug 报告或只是想打个招呼?请提交 issue 或发送电子邮件至
`fabio.delrio95@gmail.com`。
目录
- [功能](#-features) - [快速开始](#-quick-start) - [工作原理](#-how-it-works) - [从源代码构建](#%EF%B8%8F-build-from-source) - [贡献](#-contributing) - [许可证](#-license) - [致谢](#acknowledgements)标签:Apple Silicon, gamma调节, M1, M2, M3, Mac, macOS Sonoma, macOS应用, SDR转HDR, Swift, 屏幕增强, 峰值亮度, 显示优化, 显示器亮度, 系统工具, 菜单栏工具