Mac - 通过 Script 实现更换桌面壁纸

文章介绍了如何结合Python、Crontab和OsaScript自动从Bing获取每日壁纸并设置为Mac桌面背景。首先,通过修改Python脚本来保存壁纸并返回文件路径,然后更新Shell脚本调用OsaScript根据路径切换壁纸。最后,添加Crontab规则实现定时更换。此外,还提到了如何在Iterm2中设置这些壁纸作为窗口背景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一.引言

二.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 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BIT_666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值