Posts MacBook 合盖自动关闭蓝牙
Post
Cancel

MacBook 合盖自动关闭蓝牙

用过 MacBook 系列产品的童鞋应该都会发现,在合盖之后,蓝牙进程还是在后台处于开启状态。这对于限制链接数的蓝牙设备(譬如本人手上的某款蓝牙耳机,限制最多接入两个音频输入设备)就会造成占位。

耗电与否先不讨论,蓝牙耳机的使用体验上已经大打折扣了,譬如 MacBook 上用蓝牙耳机听着音乐,同时平板也保持和耳机的链接,几分钟后完成手上工作,合盖 MacBook 潇洒离座,然后手插裤兜掏出手机想用蓝牙耳机听歌,可是耳机链接名额已经给平板和 MacBook 占满了,无法再接纳手机,这时就不得不愤然回座,手动关闭平板或者 MacBook 对耳机的链接。

如果可以改变 MacBook 的习性,让它合盖之后自动关闭蓝牙,就不用手动释放对蓝牙设备的占用名额了。So, 果断开工让 MacBook 成为更聪明的宝宝。

CLI 关闭蓝牙

blueutil 是 Mac 上的控制蓝牙的命令行工具,可以检查蓝牙状态,以及开启/关闭等操作。通过 Homebrew 安装十分方便:

1
$ brew install blueutil

关闭蓝牙:

1
$ blueutil -p 0

开启蓝牙:

1
$ blueutil -p 1

短短的命令就可以轻松 开/关 蓝牙,这时候只需要把上述 CLI 加入 合盖/开盖 监视器即可。

监测休眠及唤醒

sleepwatcher 可以监测 Mac 的休眠唤醒以及空闲状态,并执行用户自指定的命令。通过 Homebrew 获得:

1
$ brew install sleepwatcher

系统自启动 sleepwatcher 后台进程,过程需要 Administrator 密码开启权限:

1
2
$ brew services start sleepwatcher
==> Successfully started `sleepwatcher` (label: homebrew.mxcl.sleepwatcher)

执行完毕可以检查后台进程是否添加成功:

1
2
3
4
5
6
$ brew services list
Name              Status  User  Plist
sleepwatcher      started Cotes /Users/cotes/Library/LaunchAgents/homebrew.mxcl.sleepwatcher.plist

$ ps aux | grep sleepwatcher
Cotes             3067   0.0  0.0  4317336   4552   ??  S     7:39PM   0:01.79 /usr/local/sbin/sleepwatcher -V -s ~/.sleep -w ~/.wakeup

从输出看到 sleepwatcher 已经成功进驻后台进程列表。休眠指令存放于~/.sleep,唤醒的指令存放于~/.wakeup,接下来把蓝牙开关的命令加入这两个文件即可。

指定合盖(休眠)执行蓝牙关闭:

1
$ echo "$(which blueutil) -p 0" >> ~/.sleep 

which是为了指定 CLI 的绝对路径。

类似地,添加开盖(唤醒)自动开启蓝牙的命令:

1
$ echo "$(which blueutil) -p 1" >> ~/.wakeup

OK,一切完毕,自动开闭蓝牙真心爽。不吹不黑,sleepwatcher是个好东西,日后必另作他用。

参考

OLDER POST NEWER POST

Comments powered by Disqus.

Search Results