目录
一.引言
二.OsaScript 实现自动换壁纸
1.切换壁纸脚本
2.定时获取
A.修改 Python 脚本
B.修改 Shell 脚本
C.添加 Crontab
三.Iterm2 更换背景
A.打开 Preferences
B.选择 Profiles -> Window
C.效果图
一.引言
前面介绍了通过 Python + Crontab 实现 mac 上每日自动获取 Bing 搜索首页壁纸,经过接近半年的积累已经存储了很多世界各地的美景,有时看到好看的也会设置为壁纸,于是突发奇想,有没有办法在每次获取壁纸的时候在 Shell 中增加命令,直接将当前获取的图像设置为桌面壁纸,从而实现每日定时更换壁纸:
二.OsaScript 实现自动换壁纸
1.切换壁纸脚本
OsaScript是从shell运行脚本(AppleScript、JavaScript)的命令。使用下述命令可以实现命令行修改桌面壁纸:
osascript -e 'tell application "Finder" to set desktop picture to POSIX file
"/Users/xxx/Desktop/bing/加利西亚省科斯塔达莫尔特的灯塔_20220820.jpg"'
Tips:
这里需要输入绝对路径,如果输入诸如类似 '~/Desktop' 的地址,壁纸会切换为 Mac 默认的原始壁纸,即下图中的图一。
2.定时获取
如何定时获取 Bing 壁纸 -> Python - 定时自动获取 Bing 首页壁纸
A.修改 Python 脚本
由于 OsaScript 更换壁纸需要绝对路径,而之前的代码只负责存储,所以需要对 python 代码修改,新增一行 return 并更改 main 函数:
...
out = open(output, 'wb')
out.write(img)
out.close()
return output
if __name__ == "__main__":
print(dumpBingWallpaper())
B.修改 Shell 脚本
#!/bin/bash
# 获取地址
path=/Users/xxx/DumpBingPic.py
output=`python $path`
# 设置壁纸
osascript -e "tell application \"Finder\" to set desktop picture to POSIX file \"$output\""
C.添加 Crontab
30 10 * * * source ~/.bash_profile && cd $path && sh run.sh
配置后每天就会定点更换 Bing 壁纸了。
三.Iterm2 更换背景
上面如果有深色背景较多的图片,配置到 Iterm2 当做背景板也很好看,下面铺下简单流程。
A.打开 Preferences
B.选择 Profiles -> Window
C.效果图
参考链接: Set Desktop Wallpaper from Command Line on Mac