【发布时间】:2022-01-21 11:51:44
【问题描述】:
我想更改所有桌面上的墙纸,包括 Mac 上的空间,但无需每分钟致电 killall Dock。 (Dock 重新启动会强制刷新壁纸)。
我有一个 AppleScript 可以立即更改桌面壁纸:
tell application "System Events" to tell every desktop to set picture to wallpaperPath
但这只会改变活动空间上的壁纸(这意味着如果主桌面不活动,则其背景不会改变)。
我发现这个问题How to loop through all Mac desktop spaces 建议更新位于~/Library/Application Support/Dock/desktoppicture.db 的SQLite 数据库中的壁纸路径值。这会更改每个空间的墙纸,这很棒,但需要使用 killall Dock 重新启动扩展坞,这是不可取的,因为它会破坏工作流程。
我的问题是 - 有没有办法将这两种方法结合起来?无缝更换每个桌面空间的壁纸?
任何建议将不胜感激。我没有首选语言,它可以是 C、Swift、Python、Bash、AppleScript 等。
【问题讨论】:
-
实际上 - 不需要在所有空间上更改它。无论哪个空间处于活动状态(我使用全屏应用程序 - 因此每个全屏应用程序都有自己的空间),我只需要在所有主桌面(每台显示器上)上刷新壁纸。
标签: macos applescript