macOS 原生 SwiftUI 菜单栏应用。读取这台 MacBook 的真实铰链角度,在内置屏幕上叠加实时桌面的透视与磨砂玻璃效果。
以本机的 MacBook Duo 应用为交互参考,按需求采用「顶部最模糊、靠近底部铰链逐渐清晰」的方向。模糊半径随屏幕位置连续变化,合盖时范围向下扩展。深度、磨砂强度、完全展开的角度可调。
打开 MacDuo.xcodeproj,选择 MacDuo / My Mac 运行。菜单栏会出现笔记本图标。
- 将屏幕打开到舒适位置,点击「将当前开盖位置设为清晰状态」。
- 点击「启用桌面效果」。首次需在系统设置 → 隐私与安全性 → 屏幕与系统音频录制中允许 Mac Duo。
- 回到应用点击「检查授权并重试」。系统要求重新打开时,退出本应用并重开。
- 缓慢合盖观察效果,也可点击「演示 3 秒」。
- 关闭效果或按 Control + Option + Command + D,立即恢复桌面。
只作用于内置屏幕。叠加层不接管鼠标,画面只在本机内存处理;不录制音频、不保存录像、不上传。维持系统正常合盖休眠,唤醒后尝试恢复。屏幕配置变化或传感器/采集失败会关闭效果。
工程使用本机已有的 Apple Development 签名(团队 ZX3WWW5SC4),保持重编译后的应用身份稳定。之前使用临时签名的版本需要重新授权一次。推荐运行固定位置 /Applications/MacDuo.app,不要同时运行多个构建副本。此应用与参考应用 /Applications/MacBook Duo.app 相互独立。
不使用 CGPreflightScreenCaptureAccess 阻断已获授权的 ScreenCaptureKit;拒绝后显示明确的设置/重试入口,不自动重复请求。换电脑构建时,在 Xcode 的 Signing & Capabilities 中选择自己的开发团队。
scripts/check-hinge-blur.sh 对真实 Core Image 渲染结果检查:展开时像素不变,铰链比中部清晰、中部比顶部清晰,合盖使模糊向下扩散,底边不透明,透视不改变画面尺寸。输出保存在 .artifacts/hinge-blur/。
铰链使用 Apple HID 传感器(Vendor 0x05AC、Usage Page 0x20、Usage 0x8A、Feature Report 1);此接口不是 Apple 稳定的公开铰链 API。传感器不可用时会显示状态并撤去效果。