前言
macOS盖屏后,有时候还是保持蓝牙和Wi-Fi的连接,待机待着没电了?
如何让macOS盖屏后,自动关闭Wi-Fi和蓝牙,在唤醒时又自动开启蓝牙和Wi-Fi呢?
很简单,部署一个脚本,再合盖睡眠时候自动关闭蓝牙和Wi-Fi,在唤醒时候打开即可。
部署脚本
首先下载这个脚本到本地:SleepAndAutoBluetoothAndWifi
你也可以使用Git
克隆项目到本地,结果一样。
之后打开Terminal,使用cd
命令进入解压好的文件夹内。
Homebrew安装(推荐)
相信大部分使用macOS的用户,都是有安装Homebrew的;推荐使用Homebrew安装,主要是便于包的管理。
我们进入终端内,运行脚本:
代码语言:txt复制zsh install.sh
之后就安装完成了。盖下屏幕。等5min后打开屏幕,看看在解锁前,状态栏上的Wi-Fi是否为关闭状态,是则为脚本启动成功。
配置安装(不推荐)
相信还是有极少部分macOS用户是没安装Homebrew,这边提供手动安装的方式,但是不推荐。主要原因:
- 配置安装,不方便管理包(尤其是卸载的时候)
- macOS区分架构,配置安装需要区分
这边脚本里为半自动配置,未测试:
我们进入终端内,运行脚本:
代码语言:txt复制zsh install-without-brew.sh
之后就安装完成了。盖下屏幕。等5min后打开屏幕,看看在解锁前,状态栏上的Wi-Fi是否为关闭状态,是则为脚本启动成功。
原理
原理很简单,依赖两个工具包:
- blueutil
- Sleepwatcher
Sleepwatcher是两个自动脚本服务,分别是:
- ~/.sleep
- ~/.wakeup
也就是自动在macOS睡眠和唤醒执行的脚本。配合blueutil
来实现对Wi-Fi和蓝牙的控制,实现macOS自动睡眠关闭Wi-Fi和蓝牙,唤醒打开。
如何卸载
运行uninstall.sh
脚本即可。 或者手动删除相关文件:
Homebrew方法安装:
代码语言:txt复制brew services stop sleepwatcher
brew uninstall sleepwatcher
brew uninstall blueutil
cd ~
sudo rm -rf .sleep
sudo rm -rf .wakeup
非Homebrew方法安装:
代码语言:txt复制sudo launchctl unload /Library/LaunchDaemons/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist
sudo launchctl kill sleepwatcher
sudo rm -rf /Library/LaunchDaemons/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist
sudo rm -rf /usr/local/sbin/sleepwatcher
sudo rm -rf /usr/local/bin/blueutil
sudo rm -rf /usr/local/share/man/man8/sleepwatcher.8
sudo rm -rf .sleep
sudo rm -rf .wakeup