用Applescript 实现自定义的动态壁纸

用Applescript 实现自定义的动态壁纸

1. 动态壁纸 Dynamic Wallpaper

讲到在苹果上整动态壁纸,就得先聊聊他自家的方案。最早苹果在macOS Mojave 里引入了这个概念,基于每天的不同时段去变化桌面的壁纸。其所用的技术是在设置壁纸时,用一个带有时间信息的Heic 格式的图片去设置成壁纸,里面包含了多张的tiff 图片及时间信息。到了时间就切换一下里面应用的图片。这个技术整挺好,又不占用资源又实用。有那么段时间你甚至可以自已做这样的图片去实现这样的功能,但现在,在Big Sur 上是不可能的啦。因为壁纸目录在 /System/Library/Desktop\ Pictures 这里。整个系统目录是只读的,所以你是不能自已加的。

讲到这里,能实现这个功能的 “官方渠道” 就已经 “此路不通” 了。得另想办法。

在查找资料前我就想着有没有可能用脚本去做这个事,毕竟Mac 是Unix 系的东西。有没有可能可以用Bash 脚本 加一些事件勾子来实现动态壁纸呢。

经查找,可以是可以的,但和想象中的有一点点不一样。

可以使用Applescript 来做,并用Launchctl 来实现定时调用。理论上来说应该也可以用Crontab+Bash 来实现调用,但在最新的系统上Cron 好像没啥作用。即使给了全盘文件的访问权限也不行。暂估计是因为苹果的安全设计导致的。另外用Lauchctl 有Cron 所没有的好处。下面再详细说。如果你是Linux 类的机器那估计是可以用Crontab+Bash 实现这个效果的。但我没试🤔

2. Applescript

那么Applescript 是什么?

AppleScript is a scripting language created by Apple. It allows users to directly control scriptable Macintosh applications, as well as parts of macOS itself. You can create scripts—sets of written instructions—to automate repetitive tasks, combine features from multiple scriptable applications, and create complex workflows.

上面是苹果开发官网的介绍。基本上可以理解成它就是苹果系统下的一个专门为苹果量身定制的脚本语言。

在有写其他语言的基础下,Applescript 的学习成本倒是不高。而且它非常类似英语的自然语言。所以总体上说还挺好学的。就是没有IDE 有点🌚 系统自带有个Applescript 编辑器(Script Editor),可以说基本没有Windows 下的记事本好用就是了。我学基本语法的时候就有过脚本的高亮卡Bug 了的情况,写着写着就不能写了。但是由于Applescript 不能用Vim 之类的编辑器打开所以也没啥选择。

在开始前我们需要准备好壁纸文件。我的想法是24小时每个小时变一次。一天由24张不一样的壁纸组成。你可以自已在一个地方定机定时拍摄一组图片或者在网上寻找别人的作品来做。

这里我是把文件放在了家目录下的图片里:

# Display X 就是指给第X个显示器用的。
# 图片名就是具体的小时数。
~/Pictures/Wallpapers/Display1/01.jpg

像这样:

我们要用到的脚本如下:

(*

Script By:
Puls Garney 08.11.2021

The Idea Came From:
https://github.com/pipwerks/OS-X-Wallpaper-Changer

Picture Locations:
~/Pictures/Wallpapers/Display1/01.jpg
~/Pictures/Wallpapers/Display2/03.jpg
~/Pictures/Wallpapers/Display3/24.jpg

*)

set useSameWallpaper to false

set wallpaperPath to "~/Pictures/Wallpapers/Display"

set currentPhoto to hours of (current date) as string

if ((the
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值