你的 MacBook 里藏着一扇“会吱呀作响”的隐形门:Lid Angle Sensor 完全指南

作者:Sam Gold(署名 Lisa 的开发者)
改写:技术白话译者

把电脑屏幕缓缓掀开,你听到的不是风扇,而是一声“老木门”的吱呀——这不是魔术,只是你的 MacBook 里多了一颗角度传感器,和一位设计师的无聊周末。


1. 先告诉你结论:3 句话读完

问题 一句话回答
这是什么? 一段 200 KB 的小程序,实时读出你屏幕开合的精确角度,还能配“开门声”。
我能用吗? 只要你是 2019 年以后带 Intel 的 MacBook,几乎都能;M1 系列暂时不行。
装完干嘛? 纯好玩:开会时慢慢掀开电脑,让全会议室回头找“哪扇门响了”。

2. 为什么我会写这篇 3000 字?

GitHub 上那份 README 已经说得很酷,但它是“工程师写给工程师”的草稿。
我想把同一份信息拆成“人类语言”,方便:

  • 刚上完专科电路课的学弟
  • 被同事安利却不想看源码的设计师
  • 想给女友电脑装彩蛋、又怕把电脑弄炸的普通人

下面我会用“对话”方式,把原文件所有关键点重新排版,不添油加醋,只加标点与比喻。


3. 什么是 Lid Angle Sensor?

3.1 拆词法

  • Lid:屏幕盖子
  • Angle:角度
  • Sensor:传感器

合起来就是“盖子角度传感器”。苹果偷偷把它焊在转轴附近,用来:

  • 判断你是否合盖休眠
  • 决定外接显示器何时点亮
  • 给系统日志写一行“Lid angle: 42.0°”

3.2 它长什么样?

肉眼看不到,芯片大小 ≈ 一粒绿豆。除非你把主板拆到飞线级别,否则只能软件读取。


4. 哪些机器自带这颗“绿豆”?

世代 机型 是否有传感器 备注
2019 Q4 16″ MacBook Pro 第一台搭载
2020 13″ MacBook Pro(Intel)
2020 15″ MacBook Pro(Intel)
2020 MacBook Air(Intel)
2020 底 MacBook Air M1 苹果改了总线,程序读不到
2021 MacBook Pro M1 同上
2022 起 MacBook Air M2 仍未开放
2023 起 MacBook Pro M3/M4 作者自用 M4 已验证

判断口诀:
“2019-Intel 到 2020-Intel,基本稳;碰到 M1,就死心;M2/M3 看运气,M4 又复活。”


5. 我电脑符合,却读不出角度?

把下面 3 个检查点当成“体检表”,顺次打钩即可。

步骤 操作 预期结果
① 系统版本 macOS 11 以上 太旧可能缺失驱动
② 隐私权限 系统设置 → 隐私 → 输入监控 → 勾选 LidAngleSensor 否则程序打不开 HID
③ 传感器路径 运行作者提供的 诊断脚本 终端会打印“Found angle sensor”或“Missing”

如果脚本报告“Missing”,把你的输出复制到 GitHub Issue,作者会更新“硬编码地址”。


6. 安装:两种路线,总耗时 3 分钟

6.1 路线 A:Homebrew(推荐)

# 1. 如果还没装 Homebrew,先去 https://brew.sh 复制安装命令
# 2. 终端执行:
brew install lidanglesensor
# 3. 装完在 Launchpad 会看到“Lid Angle Sensor”图标

6.2 路线 B:源码手动

步骤 命令 解释
1. 克隆 git clone https://github.com/samhenrigold/LidAngleSensor.git
2. 依赖 需 Xcode 26+ 作者只在 Xcode 26 测试过
3. 编译 xcodebuild -scheme LidAngleSensor build 产物在 DerivedData
4. 签名 用免费 AppleID 自签名 不签无法打开

7. 第一次运行:界面 4 个元素

打开后窗口极简:

  1. 实时角度数字(°)
  2. 可视化圆弧条
  3. “Start Audio”按钮
  4. “Quit”按钮

不要急着点 Start Audio,先慢慢开合屏幕,确认数字随动;否则先回头检查权限。


8. 声音彩蛋: LEGO 蝙蝠侠的木门

  • 来源:游戏《LEGO Batman 3: Beyond Gotham》里一段开门采样
  • 触发逻辑:只有角度变化速率 < 5°/s 才播放,快了不响
  • 格式:22 kHz、单声道、.wav,体积 80 KB,循环不卡顿

想关掉?永远不点“Start Audio”即可;没有系统级常驻,不占 CPU。


9. 常见疑问集中轰炸(FAQ)

你可能的提问 原文件直译
能装在 iMac 吗? 作者没测试,但用户反馈 [Issue 33] 说“行”;如果失败,把主机抱起来前后晃几下再试(玩笑)。
会损坏电脑吗? 只是读取现有传感器,不写寄存器,0 风险。
耗电吗? 实测常驻 0.1 % CPU,相当于多看 3 秒网页。
能开机自启? 把 App 拖进“系统设置-用户-登录项”即可。
角度精度? 传感器原生 0.1°,程序四舍五入到整数。
能输出 CSV 做实验? 目前不行,需要你自己改源码加 NSLog。
为什么作者署名 Lisa? 小时候用妈妈名字注册开发者账号,苹果不让改,一辈子卡死。

10. 如果想自己改代码?

作者把项目当“设计草稿”扔上来,连音频都承认“I’m bad at audio”。
你可以:

  • 把 LEGO 蝙蝠侠换成《生化危机》推门声
  • 加一个“角度超过 90° 自动暂停音乐”的脚本
  • 用 SwiftUI 把窗口做成 3D 铰链可视化

仓库协议 MIT,随便玩,Pull Request 写上“我 guess 可以”就行。


11. 已知翻车现场

机型 症状 临时方案
M1 MacBook Air 打开后角度恒 0° 无解,等苹果开放
2018 15″ MacBook Pro 根本没有传感器 别装,装了也是 0°
macOS 15 Sequoia Beta 隐私弹窗重复出现 重启或等正式版

12. 三分钟读完的“电梯版”

  1. 2019-Intel 到 2020-Intel 的 MacBook,几乎都有角度传感器。
  2. 打开终端:brew install lidanglesensor
  3. 启动 App,慢慢掀盖,听见“吱呀”就是成功。
  4. M1 系列目前歇菜,别浪费时间。
  5. 源码开源,想加功能自己改,作者欢迎“guess 式”贡献。

13. 结束语:技术也可以没意义

Sam Gold 在 README 最后说:“A lot of free time.”
这句话翻译过来就是——
“有时候我们折腾,不是为了赚钱,只是想确认:电脑真的在听我讲话。”

如果你读到这儿,合上屏幕,听见那声并不存在的木门响,别惊讶,那只是数字世界给你的一点回应。祝你玩得开心,记得别在图书馆开声音。