你的 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 个元素
打开后窗口极简:
-
实时角度数字(°) -
可视化圆弧条 -
“Start Audio”按钮 -
“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. 三分钟读完的“电梯版”
-
2019-Intel 到 2020-Intel 的 MacBook,几乎都有角度传感器。 -
打开终端: brew install lidanglesensor
-
启动 App,慢慢掀盖,听见“吱呀”就是成功。 -
M1 系列目前歇菜,别浪费时间。 -
源码开源,想加功能自己改,作者欢迎“guess 式”贡献。
13. 结束语:技术也可以没意义
Sam Gold 在 README 最后说:“A lot of free time.”
这句话翻译过来就是——
“有时候我们折腾,不是为了赚钱,只是想确认:电脑真的在听我讲话。”
如果你读到这儿,合上屏幕,听见那声并不存在的木门响,别惊讶,那只是数字世界给你的一点回应。祝你玩得开心,记得别在图书馆开声音。