你是否曾在 iPhone 上被「Duo 效果」惊艳过?当双手合拢 iPhone,屏幕内容仿佛被吸入三维空间——倾斜、模糊、渐隐,充满电影级的沉浸感。现在,这个只属于 iPhone 的高级动效,终于被原生移植到了 MacBook 上!Mac Duo 是一款轻量却极具巧思的 macOS 菜单栏应用,它利用 MacBook 自带的 lid angle 传感器与 Metal 渲染引擎,在你合上笔记本的刹那,实时捕获屏幕画面并施加动态透视变形、高斯模糊与亮度衰减,让每一次关机/休眠都变成一次视觉仪式。
核心功能
- 真实物理联动的合盖动画:不再依赖定时器或模拟角度,而是直接读取 MacBook 内置的高精度 lid angle 传感器数据(macOS 14+ 原生支持),实现毫秒级响应——合盖角度每变化 0.5°,画面透视和模糊强度即同步更新,还原 iPhone Duo 的“呼吸感”。
- 全屏实时画面捕获与渲染:基于 Apple 官方
ScreenCaptureKit框架,以极低延迟捕获当前主屏幕(仅限内置显示器)的完整画面,并在独立 Metal 渲染上下文中进行 GPU 加速处理,全程不卡顿、不掉帧,即使运行大型 IDE 或视频会议也能流畅呈现。 - 可调校的三维透视参数:提供「视角高度」「倾斜深度」「模糊半径」「暗化强度」四大滑块,允许用户根据实际坐姿(如桌面高度、眼睛距离)微调效果——离屏幕近时调小透视避免畸变,远距离则加大倾斜增强纵深感,真正适配个人工作环境。
- 无感菜单栏控制中心:常驻顶部菜单栏的图标支持一键启停动画、快速切换中英文界面、打开设置面板,甚至点击图标即可预览当前参数下的静态效果,无需打开设置窗口反复调试,效率拉满。
- 零干扰交互设计:动画层完全透明且不拦截任何鼠标/触控板事件——你仍可正常点击 Dock、切换窗口、操作触控板,动画只是“覆盖在上方的视觉滤镜”,不影响任何真实操作,告别同类工具常见的误触和焦点丢失问题。
- 开箱即用的双语支持:原生内置简体中文与英文界面(非翻译补丁),所有设置项、提示文案、错误信息均经过本地化优化,中文用户无需查词典就能精准理解每个参数作用,降低使用门槛。
- 安全合规的权限管理:仅需一次授予「屏幕录制」权限(系统设置 → 隐私与安全性 → 屏幕录制),无网络请求、不上传数据、不访问文件系统,所有渲染均在本地完成,符合苹果隐私设计规范,企业用户也可放心部署。
- 跨芯片架构原生支持:预编译 DMG 版本同时兼容 Apple Silicon(M1/M2/M3)与 Intel x86_64 Mac,无需 Rosetta 转译,Metal 渲染性能发挥到极致,老旧 MacBook Pro 也能跑出 60fps 流畅动画。
技术亮点
- Metal 原生渲染管线:摒弃 CPU 软渲染或 Core Animation 叠加方案,全程通过 Metal Shading Language 编写顶点/片元着色器,直接操控 GPU 执行透视投影矩阵变换、高斯模糊卷积与 HDR 亮度映射,功耗比纯 Swift 实现低 40%,发热控制更优。
- ScreenCaptureKit 深度集成:采用 Apple 2023 年推出的现代化屏幕捕获框架(取代已废弃的 deprecated AVFoundation API),支持逐帧时间戳同步、HDR 元数据保留、以及多显示器场景下的精确源选择,确保动画色彩准确、动态范围不压缩。
- 传感器驱动的事件模型:不轮询、不采样、不猜测——直接监听
IOHIDEvent中的 lid angle 事件流,结合 macOS 的CGDisplayIsBuiltin()校验机制,严格限定仅在具备原厂传感器的 MacBook(如 M3 MacBook Air、2021+ MacBook Pro)上激活,杜绝误触发与兼容性崩溃。 - 零依赖轻量化架构:全项目仅依赖 Swift 标准库与系统框架(无 CocoaPods/SPM 外部包),二进制体积仅 4.2MB,启动时间 <300ms;构建脚本
build.sh封装了签名、打包、权限配置全流程,开发者可 5 秒生成可运行 App。 - AI 辅助开发痕迹可见:作者在 Acknowledgements 中明确提及“built with AI assistance”,从代码注释风格、Metal 着色器结构合理性到异常处理边界覆盖,均体现人机协同的工程效率——这不是玩具项目,而是经得起生产环境推敲的工业级小工具。
适合哪些人用
Mac Duo 不是极客玩具,而是为三类真实用户量身打造的生产力“情绪增强剂”:
- 远程办公族:每天数十次开合笔记本,Mac Duo 将机械动作升华为视觉反馈——合盖即“收工仪式”,打开心态切换开关;开会前轻推合盖,模糊动画自动屏蔽背景杂乱,给镜头前留出 2 秒缓冲,自然又专业。
- 创意工作者:UI/UX 设计师用它快速预演移动端折叠交互逻辑;视频剪辑师在 Final Cut Pro 导出时合盖,动画成为天然进度提示;甚至可用作直播开场转场特效,低成本提升内容质感。
- 苹果生态深度用户:追求软硬件体验一致性的果粉,拒绝“安卓式”粗糙动画;教育机构 IT 管理员可批量部署,让学生在课堂合盖时获得统一、优雅的设备休眠反馈,强化品牌认知。
快速上手
安装仅需三步:
- 前往 官方发布页 下载
Mac-Duo-dev.dmg(推荐)或 ZIP 包; - 双击挂载 DMG,将
Mac Duo.app拖入应用程序文件夹; - 首次运行时,系统会弹出「屏幕录制」权限请求——点击「打开系统偏好设置」→「隐私与安全性」→「屏幕录制」→ 勾选
Mac Duo,完成后重启应用即可。
启用后,菜单栏出现黑白双色图标,点击即可进入设置页:
• 开关动画:顶部滑块一键全局启停
• 微调参数:拖动「视角」「深度」「模糊」「暗化」四滑块实时预览
• 切换语言:右键图标选择「简体中文」或「English」
同类对比 / 注意事项
目前 macOS 生态中尚无直接竞品。类似思路的工具如 LidWatcher(仅触发脚本)、FlipClip(静态截图动画)均无法实现 Mac Duo 的「传感器直连 + GPU 实时渲染」闭环。需特别注意:
- 硬件限制明确:仅支持 macOS 14+ 且配备原厂 lid angle 传感器的 MacBook(M1 Air 及更新机型、2021+ Pro),Mac mini/iMac/外接显示器完全不支持,安装前请先确认系统版本与机型。
- 效果范围限定:动画仅作用于内置屏幕,副屏内容不会参与渲染;合盖至约 30° 后动画自动停止(因 macOS 进入睡眠准备状态),此属系统级行为,非 Bug。
- 权限重置提醒:若自行用 Xcode 构建(
./build.sh --run),ad-hoc 签名会导致系统重新要求屏幕录制权限,需再次手动授权。
项目信息
Wish you could bring the iPhone Duo effect to your MacBook?
807
Stars
59
Forks
Swift
Apache-2.0
编程语言:Swift|Star 数:807|开源协议:Apache-2.0|GitHub 项目地址
如果你厌倦了千篇一律的“黑屏休眠”,渴望每一次合盖都像按下电影暂停键——Mac Duo 就是那个把 iOS 级交互哲学,稳稳栽种在 macOS 土壤里的精致答案。



