SleepWatcher + blueutil 实现蓝牙随 MacBook 睡眠自动开关
本文将介绍如何借助 SleepWatcher 和 blueutil,在 MacBook 进入睡眠和唤醒时自动关闭和开启蓝牙。
安装 SleepWatcher 和 blueutil
通过 Homebrew 安装:
$ brew install sleepwatcher blueutil
你也可以选择从源码编译 SleepWatcher,官网提供了完整的 Makefile。本文仅介绍使用 Homebrew 的方法。
配置脚本实现蓝牙开关
SleepWatcher 会在系统睡眠和唤醒时分别执行用户主目录下的 ~/.sleep
和 ~/.wakeup
脚本。我们通过这两个脚本调用 blueutil 来控制蓝牙状态。
需要注意的是,SleepWatcher 默认以 root 身份执行命令,但 blueutil 并不支持以 root 身份运行,因此需要切换回普通用户身份来执行。
执行以下命令确认 blueutil 路径:
$ which blueutil
编辑 ~/.sleep
脚本,添加以下内容,关闭蓝牙:
#!/bin/bash
sudo -u yourUserName blueutilPath -p 0
编辑 ~/.wakeup
脚本,添加以下内容,开启蓝牙:
#!/bin/bash
sudo -u yourUserName blueutilPath -p 1
请自行替换 yourUserName
和 blueutilPath
。
赋予脚本执行权限:
$ chmod +x ~/.sleep ~/.wakeup
启动 SleepWatcher 服务
最后,启动 SleepWatcher 服务,使配置生效:
$ brew services start sleepwatcher
这样,当 MacBook 进入睡眠时蓝牙自动关闭,唤醒时自动开启。
SleepWatcher + blueutil 实现蓝牙随 MacBook 睡眠自动开关
https://496066.xyz/sleepwatcher-blueutil/
https://496066.xyz/sleepwatcher-blueutil/