macOS 自带的 Automator.app 并没有给出睡眠及唤醒时的条件变量,不过可以通过 sleepwatcher
来监测并执行一些脚本。
sleepwatcher
安装:
brew install sleepwatcher
安装完成后有使用提示,sleepwatcher 会在睡眠和唤醒时自动运行 ~/.sleep
和 ~/.wakeup
。
服务由 brew services 管理:
brew services -h
创建文件并给予运行权限:
touch ~/.sleep && chmod +x ~/.sleep
touch ~/.wakeup && chmod +x ~/.wakeup
由于系统限制,睡眠时的操作不能运行超过 15 秒。
可以在 ~/.sleep
写入一个创建文件夹的操作作为测试:
#!/bin/zsh
mkdir ~/Desktop/test
盒盖、打开,桌面应该就有一个 test/
目录了。
睡眠时关闭 QQ
QQ for Mac 多年以来一直会在合盖状态下不知何时突然响起登录声,真的是让人无语,经常是合盖睡觉了,躺床上刚要睡着的时候 QQ 突然响了。
一个 python 脚本,关闭 QQ 的进程:
#!/usr/local/bin/python3
import psutil
for pid in psutil.pids():
name = psutil.Process(pid).name()
if name == 'QQ jietu plugin' or name == 'QQ':
psutil.Process(pid).terminate()
给予脚本权限并在 ~/.sleep
中执行脚本就可以了。
#!/usr/local/bin/zsh
/.../terminate_QQ.py
同步 Rime
#!/usr/local/bin/zsh
/Library/Input\ Methods/Squirrel.app/Contents/MacOS/Squirrel --sync
其他
能干的事情很多,比如启动/关闭程序,开关蓝牙,播放音乐啥的。。。