Правильным способом (без использования чего-либо еще для вызова вашего скрипта) было бы добавить следующую строку в ваш скрипт:
osascript -e 'tell Application "Finder"' -e 'set the desktop picture to {"NAME OF STARTUP DRIVE:PATH:TO:PICTURE.jpg"} as alias' -e 'end tell'
Примечание: путь использует двоеточия вместо /, и вы должны назвать жесткий диск.
Действительно странная альтернатива для хихиканья - это огромный обходной путь, заключающийся в добавлении следующей строки в ваш скрипт оболочки, выполняемый cron:
killall Dock
Это убьет Dock, который при перезагрузке (автоматически) обновит фон вашего рабочего стола. Недостатки? Значки открытых док-приложений вашего приложения будут переупорядочены (если значки приложений еще не сохранили позицию в вашей док-станции), а все свернутые окна будут свернуты. Так что, если вы не используете эти функции, это нормально.
Мой предыдущий ответ на этот отстой, так что вот лучший.
Для этого я использую сценарий оболочки и рабочий процесс Automator. Сценарий оболочки загружает изображение, которое я хочу, сохраняет его где-то и отображает полный путь к изображению (это важная часть). Рабочий процесс Automator выглядит примерно так:
Это действие «Установить изображение на рабочем столе», насколько я могу судить, пришло с Automator.
Затем у меня есть запись в crontab, которая выглядит так:
Если вы хотите, я могу опубликовать сценарий, рабочий процесс Automator, что угодно.
источник
Вот последний яблочный скрипт, который я использую:
Это передается
osascript
из сценария оболочки (фактически ruby), который обновляет jpeg.Обсуждаемая ранее проблема с фоном, который не обновляется, если новый путь совпадает с текущим путем (который все еще был проблемой с ответом Chealion), может быть взломан путем временного переключения на «empty.jpeg». Это раздражает, так как переход прерывистый, но это лучше, чем перезапуск Finder / Dock.
Я использую приложение System Events, потому что примеры Apple тоже .
источник
Я знаю, что это не отвечает на ваш вопрос полностью, но это может быть интересно для вас, чтобы прочитать. То, как кто-то сделал это, использовало AppleScript, который перезапустил Finder; когда Finder перезагружается, он автоматически обновляет фоновое изображение; кажется, нет другого пути.
источник
Это довольно просто сделать без использования внешнего скрипта ....
Во-первых, продолжай работать.
Во-вторых, создайте папку, в которую ваша задача cron поместит одну фотографию / jpg. Эта папка должна содержать только одну фотографию / jpg. (Несколько файлов дадут вам случайный эффект, см. Ниже).
В-третьих, откройте «Системные настройки» -> «Рабочий стол и заставка» -> вкладка «Рабочий стол».
В-четвертых, либо перетащите, либо используйте +, чтобы добавить новую папку в список.
В-пятых, выделите папку в списке папок.
В-шестых, включите «Изменить картинку» и выберите временные рамки.
Вы также можете запустить Applescript для сброса изображения, но это самый очевидный и простой способ, которым я могу это сделать ...
источник