前言

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是否为关闭状态,是则为脚本启动成功。

原理

原理很简单,依赖两个工具包:

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
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。