macOS 自带的 Automator.app 并没有给出睡眠及唤醒时的条件变量,不过可以通过 sleepwatcher 来监测并执行一些脚本。

sleepwatcher

安装:

1
$ brew install sleepwatcher

启动服务:

1
$ brew services start sleepwatcher

查看进程:

1
2
3
$ ps aux | grep sleepwatcher

可以看到 ... ... /usr/local/sbin/sleepwatcher -V -s ~/.sleep -w ~/.wakeup

sleepwatcher 在休眠和唤醒时会分别执行 ~/.sleep~/.wakeup

创建文件并给予运行权限就可以了:

1
2
3
4
$ touch ~/.sleep
$ touch ~/.wakeup
$ chmod +x ~/.sleep
$ chmod +x ~/.wakeup

睡眠时关闭 QQ

QQ for Mac 多年以来一直会在合盖状态下不知何时突然响起登录声,真的是让人无语,经常是合盖睡觉了,躺床上纲要睡着的时候 QQ 突然响了。

一个 python 脚本,关闭 QQ 的进程:

1
2
3
4
5
6
7
8
#!/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 中执行脚本就可以了。

1
2
3
#!/usr/local/bin/zsh

/.../terminate_QQ.py

其他

能干的事情很多,比如启动/关闭程序,开关蓝牙,播放音乐啥的。。。