从脚本更新 Mac OS X 桌面背景

p00*_*0ya 3 mac macos

我有一个 shell 脚本,它由更新 jpeg 的 cron 作业运行。我的外接显示器上的桌面背景设置为同一个文件。但是,Mac OS X 不会在文件更新时自动刷新桌面背景。

如何强制从脚本更新桌面背景?

Che*_*ion 5

一个正确的方法(不使用其他东西来调用你的脚本)是将以下行添加到你的 shell 脚本中:

osascript -e 'tell Application "Finder"' -e 'set the desktop picture to {"NAME OF STARTUP DRIVE:PATH:TO:PICTURE.jpg"} as alias' -e 'end tell'
Run Code Online (Sandbox Code Playgroud)

注意:路径使用冒号而不是 / 并且您必须命名硬盘驱动器。

对于傻笑来说,一个非常奇怪的替代方案是大量的解决方法是将以下行添加到由 cron 运行的 shell 脚本中:

killall Dock
Run Code Online (Sandbox Code Playgroud)

这将杀死 Dock,当它重新启动时(自动)将刷新您的桌面背景。缺点?您打开的应用程序停靠栏图标将重新排序(如果应用程序图标尚未在您的停靠栏中保存一个位置)并且任何最小化的窗口都将取消最小化。因此,如果您不使用这些功能,也没关系。