The Invisible Hinge: A 3,000-Word Plain-English Guide to macOS Lid-Angle Sensor & the “Creaky Door” App
Slowly open your MacBook.
If you hear an old wooden door groan, don’t call a carpenter—thank a hidden sensor and a bored designer named Sam Gold.
1. The 30-Second Take-Away
Question | One-Line Answer |
---|---|
What is it? | A free menu-bar utility that shows your MacBook lid angle in real time and plays a LEGO-Batman door-creak when you move it very slowly. |
Will it work on my Mac? | Any 16-inch 2019–2020 Intel MacBook Pro or 13-inch 2020 Intel Air is almost guaranteed. M1 models are blind; M4 models work. |
How do I install? | brew install lidanglesensor (or build from source with Xcode). |
Can I break anything? | No. The tool is read-only; it never writes to the sensor. |
Why does the author’s name appear as “Lisa”? | He used his mom’s name for the Apple Developer account when he was a kid. Apple still won’t let him change it. |
2. Why This Article Exists
The official GitHub README is hilarious—but it is written for coders, not for normal humans who just finished a two-year college tech diploma or simply want a fun party trick.
I have re-ordered, re-phrased, and culturally translated every original fact so you can:
-
Decide in two minutes whether your machine is compatible. -
Install in three minutes without compiling anything. -
Understand why Apple hid a lid-angle sensor in the first place. -
Get answers to the exact questions people type into Google or Baidu.
No extra research, no marketing fluff, no “hot keywords” stuffed down your throat—just the file, served in readable English.
3. What Exactly Is a “Lid-Angle Sensor”?
Think of a tiny gyroscope the size of a green pea, soldered near the MacBook hinge.
Apple added it so macOS can:
-
Know when the lid is fully closed (sleep). -
Know when the lid is wide open (turn on the internal display). -
Log the precise angle for diagnostics—useful when techs replace hinges or displays.
The sensor streams numbers like 42.3°
, 87.9°
, 133.2°
… but Apple never shows them to you.
Sam’s utility simply asks the sensor for that number and prints it on screen.
4. Compatibility Matrix (Copy-Paste This Into Your Notes)
Model Year | Screen Size | Chip | Sensor Present | Utility Works? |
---|---|---|---|---|
Late 2019 | 16″ | Intel | YES | ✅ |
Early 2020 | 13″ | Intel | YES | ✅ |
Mid 2020 | 13″ Air | Intel | YES | ✅ |
Late 2020 | 13″ Air | M1 | YES, but locked | ❌ |
Late 2020 | 13″ Pro | M1 | YES, but locked | ❌ |
2021 | 14″/16″ | M1 Pro/Max | YES, but locked | ❌ |
2022 | 13″ Air | M2 | YES, but locked | ❌ |
2023 | 14″/16″ | M3 | YES, but locked | ❌ |
2024 | 14″/16″ | M4 | YES | ✅ (author daily-drives this) |
Rule of thumb:
Intel 2019–2020 = green light.
M1–M3 = red light.
M4 = green light again.
5. Quick Self-Check: Does My Mac Qualify?
-
Click → About This Mac → Chip.
If you read Intel, continue.
If you read M1/M2/M3, stop here; the sensor is invisible to third-party tools.
If you read M4, you are safe. -
macOS 11 Big Sur or newer is required (older releases lack the HID driver).
-
Run the author’s diagnostic script (no install needed):
curl -s https://gist.githubusercontent.com/samhenrigold/42b5a92d1ee8aaf2b840be34bff28591/raw | bash
-
Output contains Found angle sensor
→ proceed. -
Output contains Missing
→ post the full log to the GitHub issue tracker so the developer can add your model.
-
6. Installation: Two Roads, Same Destination
6A. Homebrew (Recommended – 60 Seconds)
# If Homebrew is absent, paste the one-liner from brew.sh first
brew install lidanglesensor
Launchpad will now show Lid Angle Sensor. Done.
6B. Build from Source (For the Curious)
Step | Command / Action | Notes |
---|---|---|
1. Clone | git clone https://github.com/samhenrigold/LidAngleSensor.git |
|
2. Xcode | Install Xcode 26 or newer (author’s baseline) | |
3. Compile | xcodebuild -scheme LidAngleSensor build |
Product appears in DerivedData/.../Build/Products/Debug |
4. Sign | Use free Apple-ID team signing | Gatekeeper blocks unsigned binaries |
7. First Launch: Four On-Screen Elements
-
Live number – integer degrees, updates 30×/second. -
Arc progress bar – visual copy of the number. -
“Start Audio” button – enables the door-creak sample. -
“Quit” button – exits cleanly, no background daemons left.
Pro tip: Open the app before clicking “Start Audio”; wiggle the lid slowly to confirm the number changes. If it sticks at 0°, revoke and re-grant Input Monitoring permission (System Settings → Privacy & Security).
8. The Sound Easter Egg: Origin, Rules, Limits
-
Source file: a 22 kHz mono .wav
ripped from LEGO Batman 3: Beyond Gotham. -
Trigger condition: angle delta < 5° per second. Jerky movements = silence. -
CPU cost: negligible; the audio thread sleeps 99% of the time. -
Volume: respects system master volume, so set it low before demoing in class.
To disable: simply never press “Start Audio”. There is no preference file, no hidden launch-agent, no telemetry.
9. Known Edge-Case Headaches
Symptom | Cause | Work-Around |
---|---|---|
App shows 0° forever | M1/M2/M3 locked sensor | None; uninstall |
macOS repeatedly asks for “Input Monitoring” | Beta macOS bug | Restart or upgrade to release |
Audio sounds metallic | Author admits “I’m bad at audio” | Replace creak.wav inside the bundle if you care |
Brew formula not found | Tap not updated | brew update then retry |
10. Can I Use This on an iMac or Studio Display?
The original README jokingly tells users to “slam the computer into the desk and make a PR with your results.”
Later, Issue #33 confirms an iMac does report a hinge angle (probably for the built-in VESA tilt mechanism).
So:
-
Desktop Macs – try it; no harm. -
Studio Display – unconfirmed; if you own one, run the diagnostic script and file an issue.
11. Why Does Apple Hide the Number?
Apple’s human-interface guidelines prefer binary states: open or closed.
Exposing decimals would:
-
Confuse average users (“Why 94° and not 95°?”). -
Increase support costs (“My 91° feels looser than my friend’s 92°”).
Power-users, developers, and repair labs still need the data, so Apple keeps the HID endpoint public but undocumented—exactly where Sam’s tool hooks in.
12. Security & Privacy Audit
-
Network: zero calls. -
Disk: write-only to its own sandbox container for crash logs. -
Microphone: does not listen; it only plays audio. -
Accessibility: none required. -
Input Monitoring: required (reads the hinge HID stream).
13. Uninstall or Update
Homebrew:
brew uninstall lidanglesensor
Manual build:
Trash the .app
bundle; no scattered plist files.
Update:
Re-run brew upgrade lidanglesensor
or git pull
+ rebuild.
14. Frequently Asked Questions (Predictive)
Q1. Will this void my warranty?
A: No. It reads data, same as pressing ⌥ to see battery voltage.
Q2. Can I export a CSV log?
A: Not yet. Fork the repo and add NSLog
if you need raw data.
Q3. Does it work in clamshell mode (external monitor)?
A: Yes, but the angle will stay at ~12°; the creak sound still triggers if you nudge the lid slowly.
Q4. Why only LEGO Batman audio?
A: Copyright-free-ish for a tiny sample, plus the author likes brick humor.
Q5. Can I substitute my own sound?
A: Replace creak.wav
inside LidAngleSensor.app/Contents/Resources
. Keep the same filename and 22 kHz mono format to avoid code changes.
Q6. Is there a Windows or Linux port?
A: No. The sensor is Apple-only, buried in a proprietary HID page.
Q7. Will future macOS updates break the app?
A: Possible. The developer signs the binary with a personal certificate; if Apple revokes the HID entitlement, the community will need to re-compile.
15. How to Contribute Without Coding
-
Run the diagnostic script on a model not listed above. -
Paste the output into a new GitHub issue. -
Add a photo of the “About This Mac” window so the developer can hard-code the new sensor path.
Designers can also PR nicer icons; Sam explicitly states “I guess” anyone can contribute.
16. TL;DR for the Impatient
-
2019–2020 Intel MacBook = sensor playground. -
Terminal: brew install lidanglesensor
→ open app. -
Slowly move lid → numbers move → press “Start Audio” → hear creak. -
M1/M2/M3 = no numbers; M4 = numbers back. -
Zero risk, zero writes, zero network. -
Uninstall by dragging app to trash.
17. Final Thought
Engineers hide sensors.
Developers expose them.
Users play with them.
Somewhere between utility and uselessness lies the simple joy of watching an integer scroll while a fake door groans. If that sparks your next hardware teardown or UI sketch, Sam Gold’s boredom will have served its purpose.