macbook锁屏后蓝牙保持连接需通过blueutil+sleepwatcher实现自动断连,先验证锁屏时蓝牙状态,再安装配置脚本并设置开机自启,最后添加screensaverengine进程判断以避免合盖误触发。

MacBook锁屏后蓝牙仍保持连接,导致耳机无法切到手机、鼠标键盘持续耗电,甚至引发设备间抢连冲突。系统原生不提供锁屏断连选项,需借助脚本与系统事件触发机制实现。
确认当前蓝牙状态与锁屏行为
先验证问题是否存在:合盖或手动触发锁屏(Control + Command + Q)后,打开“系统设置→蓝牙”,观察已连接设备右侧是否仍显示“已连接”。若显示,说明蓝牙服务未释放连接,这是后续所有操作的前提。
这一步不能跳过——有些 macOS 版本(如 Sequoia 15.4+)在启用“快速用户切换”时,锁屏不等于会话终止,蓝牙连接可能被保留。只有确认了真实行为,才能选对方案。
用 blueutil + SleepWatcher 实现锁屏断连
这是目前最稳定、兼容性最强的方案,支持 macOS Sonoma 至 Tahoe 全系列,且不依赖图形界面运行。
方法一:终端一键安装与配置
打开“终端”,逐行执行:
brew install blueutil sleepwatcher
sudo brew services start sleepwatcher
mkdir -p ~/Scripts && cd ~/Scripts
curl -O https://raw.githubusercontent.com/odlp/bluesnooze/main/scripts/lockscreen-bluetooth-off.sh && chmod +x lockscreen-bluetooth-off.sh
这一步下载的是精简版脚本,仅处理锁屏断连,不含唤醒重连逻辑,避免干扰你已有的蓝牙使用习惯。
方法二:手动创建触发脚本(推荐用于 M 系列芯片)
新建文件 ~/Scripts/lock.sh,内容为:
#!/bin/zsh
if blueutil --is-powered; then
blueutil --power off
sleep 0.8
blueutil --power on
fi
【必须保存为 Unix 换行(LF),不能是 Windows 的 CRLF】,否则 SleepWatcher 无法执行。可用 TextEdit → “格式” → “制作纯文本”后再粘贴,或用 VS Code 保存时右下角确认换行符为 LF。
赋予执行权限:
chmod +x ~/Scripts/lock.sh
编辑 SleepWatcher 配置:
echo '"/Users/$(whoami)/Scripts/lock.sh"' | sudo tee /usr/local/etc/sleepwatcher.conf
绑定锁屏事件
第一步:确认 SleepWatcher 已监听屏幕锁定事件
运行:
sleepwatcher --verbose --on-sleep "/Users/$(whoami)/Scripts/lock.sh"
此时手动锁屏(Control + Command + Q),观察终端是否输出 “executing /Users/xxx/Scripts/lock.sh”。有则说明事件链通路正常。
第二步:设为开机自启并后台常驻
sudo cp /usr/local/share/sleepwatcher/com.apple.sleepwatcher.plist /Library/LaunchDaemons/
sudo launchctl load -w /Library/LaunchDaemons/com.apple.sleepwatcher.plist
第三步:测试最终效果
① 打开一个已配对的蓝牙耳机,确认状态为“已连接”;
② 按 Control + Command + Q 锁屏;
③ 等待 3 秒,解锁;
④ 立即查看“系统设置→蓝牙”,设备应显示“未连接”或“已断开”。
如果设备仍显示连接中,说明脚本未被执行——请检查 /usr/local/etc/sleepwatcher.conf 文件路径是否拼写正确,且文件末尾无空格或不可见字符。
第四步:防止误触发(关键补丁)
默认情况下,SleepWatcher 会在任何睡眠前执行脚本,包括合盖休眠。但你只需要锁屏断连,不需要合盖时也关蓝牙。因此需修改脚本开头加入判断:
#!/bin/zsh
if pgrep -x "ScreenSaverEngine" > /dev/null; then
if blueutil --is-powered; then
blueutil --disconnect-all
fi
fi
此判断只在屏幕保护程序启动(即锁屏)时生效,避开合盖、手动睡眠等场景。











