Stop Your MacBook’s Overnight Battery Drain: Proven Power Settings Tweaks
After experiencing up to 50% battery loss overnight when the MacBook lid is closed, the author diagnosed the issue using pmset, identified Bluetooth and Handoff as culprits, and applied three configuration changes—including disabling network wake, turning off Handoff, and using Bluesnooze—to reduce nightly drain to under 5%.
Background
Using a MacBook for years, the author noticed severe battery drain when the lid is closed and the machine is idle, sometimes dropping to around 50% after a night. Battery level after one night: ~50%. After several days without power, the MacBook would not turn on without a charger. Previous attempts to reset the SMC or restart only provided temporary relief.
Problem Investigation
Important: Remove all plugged‑in devices (power adapter, external monitors, etc.) before checking settings.
Check the MacBook’s battery and power configuration:
$ pmset -g
System-wide power settings:
Currently in use:
lidwake 1
lowpowermode 1
standbydelayhigh 86400
standbydelaylow 10800
standby 1
proximitywake 0
ttyskeepawake 1
hibernatemode 3
powernap 0
gpuswitch 2
hibernatefile /var/vm/sleepimage
highstandbythreshold 50
displaysleep 2
womp 0
networkoversleep 0
sleep 1 (sleep prevented by bluetoothd, sharingd)
acwake 0
halfdim 1
tcpkeepalive 1
disksleep 10The output shows that Bluetooth and sharing services are preventing sleep.
Further inspection with assertions:
pmset -g assertions
Assertion status system-wide:
BackgroundTask 0
ApplePushServiceTask 0
UserIsActive 1
PreventUserIdleDisplaySleep 0
PreventSystemSleep 0
ExternalMedia 0
PreventUserIdleSystemSleep 1
NetworkClientActive 0
Listed by owning process:
pid 185(bluetoothd): ... PreventUserIdleSystemSleep named: "com.apple.BTStack"
pid 191(WindowServer): ... UserIsActive named: "com.apple.iohideventsystem.queue.tickle ..."
pid 599(sharingd): ... PreventUserIdleSystemSleep named: "Handoff"
No kernel assertions.
Idle sleep preventers: IODisplayWranglerThe assertions reveal that AirDrop & Handoff and various Bluetooth devices keep the system from entering deep sleep.
Optimization Plan
1. Adjust Battery Settings
Many online guides suggest aggressive pmset tweaks, but some (e.g., setting hibernatemode to 25) can slow wake‑up times. The author applied a single change to stop network‑wake while sleeping:
# Disable network wake
sudo pmset -b tcpkeepalive 02. Disable Handoff
Turning off the Handoff feature prevents the system from staying awake for cross‑device hand‑off activities.
3. Use Bluesnooze to Turn Off Bluetooth During Sleep
Install the open‑source utility that disables Bluetooth while the Mac sleeps and re‑enables it on wake: brew install bluesnooze After installation, enable the launch agent so the service starts automatically.
With these three steps completed, the author observed nightly battery loss of less than 5% even when many applications (Keynote, IDEA, VS Code, browsers, Zoom, etc.) were running.
Eric Tech Circle
Backend team lead & architect with 10+ years experience, full‑stack engineer, sharing insights and solo development practice.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
