ZipLyne-Agency/WitzLyte

GitHub: ZipLyne-Agency/WitzLyte

一款免费开源的 macOS 菜单栏应用,利用原生 EDR 管线通过单个滑块同时解锁 XDR 面板满血亮度和系统底限以下调光。

Stars: 1 | Forks: 0

# Witz Lyte ### 在 Mac 上解锁 1600 nits 亮度并实现系统下限以下调光的免费方案。 这是一款小巧、免费且开源的 macOS 菜单栏应用,它利用 Apple 原生的 EDR 流水线,将你的 MacBook Pro 的 Liquid Retina XDR 或 Pro Display XDR 面板的亮度推高至 500 尼特的 SDR 上限之上——然后使用同一个叠加层将其亮度降低至操作系统的 0% 底限以下。无需修改 gamma,不使用私有 API,对显示器没有任何风险。
## [⬇ 下载 Mac 版 Witz Lyte](https://github.com/ZipLyne-Agency/WitzLyte/releases/latest/download/Witz-Lyte.zip) 免费 · 无需注册 · macOS 14 Sonoma 或更高版本 · Apple Silicon 这些链接始终指向最新版本:[**Witz-Lyte.zip**](https://github.com/ZipLyne-Agency/WitzLyte/releases/latest/download/Witz-Lyte.zip) · [**Witz-Lyte.dmg**](https://github.com/ZipLyne-Agency/WitzLyte/releases/latest/download/Witz-Lyte.dmg) · 由 Apple 签名并公证
[![下载](https://img.shields.io/github/v/release/ZipLyne-Agency/WitzLyte?color=FF2E63&label=Download&style=for-the-badge)](https://github.com/ZipLyne-Agency/WitzLyte/releases/latest) [![许可证](https://img.shields.io/badge/license-MIT-000000.svg?style=for-the-badge)](LICENSE) [![macOS](https://img.shields.io/badge/macOS-14%2B-111111?style=for-the-badge&logo=apple&logoColor=white)](https://www.apple.com/macos/) [![Apple Silicon](https://img.shields.io/badge/Apple%20Silicon-Required-7A5FFF?style=for-the-badge)](https://www.apple.com/mac/m5/)
**由 [ZipLyne](https://ziplyne.agency) 精心打造** [![ZipLyne](https://img.shields.io/badge/made%20by-ziplyne.agency-FF2E63?style=for-the-badge)](https://ziplyne.agency) [安装说明](#how-to-install) · [系统要求](#requirements) · [工作原理](#how-it-works) · [安全性](#is-it-safe) · [常见问题](#faq)
## 安装说明 ### 普通用户(无需使用终端) 1. **[点击此处下载 Witz-Lyte.zip](https://github.com/ZipLyne-Agency/WitzLyte/releases/latest/download/Witz-Lyte.zip)** 2. 打开下载的 zip 文件——它会解压为 **Witz Lyte.app**。 3. 将 **Witz Lyte.app** 拖入你的**应用程序**文件夹并打开。它会直接启动——每个版本都**由 Apple 进行了代码签名和公证**,因此 macOS 不会显示任何警告。 4. 在你的菜单栏(屏幕右上角)找到**☀️ 太阳图标**。 5. 点击图标 → **Enable Witz Lyte**,然后拖动滑块让屏幕变亮(或变暗)。从同一菜单打开 **Dashboard…** 即可在一个窗口中管理所有设置。 大功告成。无需账户、无需付款、无需订阅、无需任何配置。**更新会自动安装**——当新版本发布时,Witz Lyte 会在应用内提示更新(由已签名的 Sparkle 自动更新;你永远不需要再回到这个页面)。 ### 开发者(从源代码编译) ``` git clone https://github.com/ZipLyne-Agency/WitzLyte.git cd WitzLyte ./build.sh mv "dist/Witz Lyte.app" /Applications/ open "/Applications/Witz Lyte.app" ``` 需要 Xcode Command Line Tools (`xcode-select --install`)。 ## 系统要求 ### 最低要求 | 要求 | 最低要求 | |---|---| | **Mac 芯片** | Apple Silicon M1 或更新型号 *(不支持 Intel)* | | **macOS** | 14.0 Sonoma 或更高版本 | | **显示器** | 任何报告 EDR headroom > 1.0 的显示器 *(提升级别因设备而异——请参见下表)* | | **内存 / 存储** | 无实际要求——Witz Lyte 在空闲时占用 < 50 MB 内存 | ### 显示器兼容性 你获得的亮度提升完全取决于显示器的 EDR headroom。macOS 会在运行时报告此数据——Witz Lyte 会读取该值并对滑块进行硬性限制,确保你永远不会超出硬件规格。 | 显示器 | 要求的 Mac | 峰值亮度 | 提升级别 | 备注 | |---|---|---|---|---| | MacBook Pro 14" / 16" Liquid Retina XDR | M1 Pro/Max · M2 Pro/Max · M3/Pro/Max · M4/Pro/Max · **M5 Max** | **1600 nits** | **完全提升 — 3.2×** | 最佳体验。支持 Nano-texture。 | | Apple Pro Display XDR | 任何 Apple Silicon Mac | **1600 nits** | **完全提升 — 3.2×** | 参考模式不受影响。 | | MacBook Air 15" (M2 / M3 / M4) | — | ~800 nits | 部分提升 — ~1.6× | 有实质提升,但未达到完整的 XDR | | MacBook Air 13" (M1 / M2 / M3 / M4) | — | ~600 nits | 部分提升 — ~1.5× | 户外可见明显亮度提升 | | MacBook Pro 13" (M1 / M2) | — | ~600 nits | 部分提升 — ~1.5× | 非 XDR 面板 | | iMac 24" (M1 / M3 / M4) | — | 500 nits | 无提升 — 1.0× | 标准 Retina,无 EDR headroom | | Apple Studio Display | 任何 | 600 nits | 无提升 — 1.0× | 向 macOS 报告的 EDR headroom 为零 | | 第三方 HDR 显示器 | 任何 Apple Silicon | 因设备而异 | 因设备而异 | 在 macOS 报告 EDR headroom > 1.0 时可用 | | **Intel Mac(任何型号)** | — | — | **不支持** | EDR 流水线需要 Apple Silicon | ## 为什么开发这款应用 macOS 将你的 1600 尼特 XDR 面板在常规桌面内容下限制在约 500 尼特。这对于在昏暗工作室中进行色彩精准的工作来说非常棒——但在户外、阳光充足的咖啡馆,或者任何你的视网膜需要战胜环境光的场景下,体验极其糟糕。而且,如果你在凌晨 2 点使用电脑,操作系统的最低亮度下限依然太亮了。 Witz Lyte 使用单个由 EDR 支持的叠加层来解决这两个问题。只需一个滑块——向左滑动可在操作系统底限以下调暗,向右滑动可突破 SDR 上限——由 Apple 自己的渲染技术栈驱动。 ## 功能特性 | | | |---|---| | **统一滑块** | 调暗 ← → 提升。中间的恒等值 (1.0) 具有类似 macOS 音量的磁吸效果 | | **完整的 EDR 提升** | 最高可达显示器报告的 headroom——无需修改 gamma | | **超低调光** | 使用 multiply blend mode 降至 macOS 0% 亮度底限以下 | | **全局快捷键** | `⌘⌥⇧B` 切换叠加层 · `⌘⌥⇧0` 重置为正常状态 | | **多显示器感知** | 每个屏幕分配一个叠加层,在显示器更改时自动重建 | | **电池保护** | 可选在电池供电时自动禁用 | | **过热保护** | 可选在 `.serious` / `.critical` 热状态下自动禁用 | | **自动关闭计时器** | 15分钟 · 30分钟 · 1小时 · 2小时 | | **登录时启动** | 连接至 `SMAppService`——真正的 macOS 登录项 | | **尼特估算** | 实时工具提示显示近似的光通量输出 | | **零额外依赖** | 约 600 行 Swift 代码,单一菜单栏进程,占用磁盘空间 < 5 MB | ## 工作原理 每个屏幕都会在 `.screenSaver` 级别获得一个无边框、可穿透点击的全屏 `NSWindow`,其中包含一个托管着手动配置的 `CAMetalLayer` 的 `NSView`: ``` metalLayer.pixelFormat = .rgba16Float metalLayer.wantsExtendedDynamicRangeContent = true metalLayer.colorspace = CGColorSpace(name: .extendedLinearDisplayP3) metalLayer.compositingFilter = "multiplyBlendMode" ``` 该图层在扩展线性 Display P3 中清除为 `(v, v, v, 1.0)`。使用 `multiplyBlendMode` 时,合成器执行的操作为: ``` final_pixel = overlay_rgb × underlying_rgb ``` `v = 1.0` 为恒等(不可见)。`v = 2.0` 会将每个像素的亮度翻倍,直接输入到显示器预留的 XDR headroom 中。`v = 0.5` 会将每个像素的亮度减半——实现真正在操作系统亮度底限以下的超低调光。原子化呈现(`commit → waitUntilScheduled → present`)可防止合成器闪烁。1 Hz 的 keep-alive 机制可阻止 macOS 在空闲时禁用 EDR。 没有 LUT 操纵,没有私有 API,没有 SPI,也没有 IOKit 技巧。 ## 它安全吗? **安全。** 该显示器的面板由 Apple 认定可在这些级别下持续输出 HDR——这与播放 HDR 视频时的渲染路径相同。需要了解的几点: - 更高的亮度 = 更多的功耗和发热。过热保护开关可处理突发的高温。 - 滑块被硬性限制在操作系统报告的 EDR headroom 范围内——你无法超出硬件规格。 - 在*数年*的重度使用下,若持续保持峰值亮度,OLED/mini-LED 面板的老化速度会略微加快。 ## 常见问题
我收到了一条提示,说应用来自身份不明的开发者——它安全吗? 安全。Witz Lyte 是临时签名的(未经过公证),因为公证需要付费的 Apple Developer 账户。源代码就在这个代码库中——你可以自己阅读每一行代码。首次打开时:右键点击该应用 → **打开** → **打开**。你只需执行一次此操作。
它能在配备 nano-texture 的 M5 Max MacBook Pro 上运行吗? 可以——完美运行。Nano-texture 蚀刻玻璃会散射部分发射光,因此感知到的峰值亮度略低于光泽变体,但提升功能依然能将面板亮度轻松推高至 500 尼特的 SDR 上限之上,直达完整的 1600 尼特 XDR 顶点。
为什么我的 MacBook Air 获得的提升不如 MacBook Pro 大? Air 使用的是标准的 IPS 面板(Liquid Retina,而非 XDR),其 HDR headroom 有限(~1.5–1.6×)。Pro 的 Liquid Retina XDR 面板采用额定 1600 尼特的 mini-LED 背光,拥有 ~3.2× 的 headroom。Witz Lyte 会读取硬件报告的顶点——它无法超出显示器支持的范围。
它能在 Studio Display 上运行吗? 不能。Studio Display 向 macOS 报告的 EDR headroom 为零。Witz Lyte 检测到此情况后,滑块将不会产生任何可见效果。
它能在 Intel Mac 上运行吗? 不能。Witz Lyte 使用的 EDR metal 流水线需要 Apple Silicon。
这会导致我的账号被 App Store 封禁吗? Witz Lyte 在 App Store 之外分发,因为 App Store 的审核会根据第 §2.5.1 条拒绝 EDR 提升类应用。但应用所使用的 API 本身是 100% 公开且有文档记录的。请在此处下载。
如何卸载? 点击 ☀️ 图标 → **Quit Witz Lyte**,然后将 `/Applications` 中的 **Witz Lyte.app** 拖入废纸篓。就可以了。
## 项目结构 ``` WitzLyte/ ├── Package.swift ├── build.sh # builds + bundles .app ├── Resources/ │ └── Info.plist └── Sources/WitzLyte/ ├── main.swift ├── AppDelegate.swift ├── Settings.swift # UserDefaults wrapper ├── BrightnessController.swift ├── OverlayWindow.swift # NSWindow subclass, per-screen ├── EDRMetalView.swift # the actual brightness trick ├── MenuBarController.swift └── PowerMonitor.swift # battery + thermal auto-off ``` ## 开源协议 [MIT](LICENSE) © 2026 ZipLyne.
### 由 ZipLyne 用心打造 我们设计和开发软件产品。
[ziplyne.agency](https://ziplyne.agency)
标签:EDR, 屏幕亮度控制, 系统工具, 脆弱性评估, 菜单栏应用