Автоматическая настройка заставки в командной строке/скрипте оболочки

Автоматическая настройка заставки в командной строке/скрипте оболочки

Итак, я настраиваю некоторые Default User Template LaunchAgents, чтобы настроить заставку по умолчанию для некоторых из самых популярных фан-артов моей компании. (На самом деле, это было очень хорошо принято командой). Они разработаны как изображения первого запуска, когда они входят в своих принудительно-локальных пользователей Active Directory.

Однако сейчас я получаю очень противоречивые результаты... а именно, это вообще не работает.

Запускает .plistShell Script, расположенный в папке /sbin/. Странно, что он в основном работает в существующем пользователе.

Заставка предполагает использование функции «Flipup» с определенной папкой изображений, перемешивание изображений и установку времени начала на 5 минут.

Например, я намеренно установил заставку «пользователя конфигурации по умолчанию» сначала на «Holiday Mobile», установил выбор изображения на «Cosmos» (одно из значений по умолчанию) со временем начала 20 минут и снял галочку «перемешивать изображения». Затем я изменил его на «Arabesque».

Когда я вышел из системы и снова вошел в нее, чтобы запустить скрипт, в результате я получил "Holiday Mobile". Однако, когда я перешел в "Настройки рабочего стола и заставки", на самом деле был выбран "Arabesque", хотя предварительный просмотр "Holiday Mobile" отображался с серыми "Параметры заставки" ниже. (Однако время начала изменилось на 5 минут, и когда я нажал на "Holiday Mobile", "Перемешать порядок слайдов" был проверен правильно.)

Итак, в тестовом режиме пользователь переходит в режим Fan Art, активирует Shuffle и меняет время.

Но когда я создаю нового пользователя после добавления LaunchAgent .plistв шаблон пользователя по умолчанию, я не получаю ничего, кроме стандартной заставки «Имя компьютера» на черном фоне.

Я совершенно не понимаю, почему это происходит. Есть какие-нибудь предложения?

Вот скрипт оболочки:

    #!/bin/sh
    
    ## Set Screensaver to Photo Slideshow
    /usr/bin/defaults -currentHost write com.apple.screensaver 'CleanExit' -string "YES"
    /usr/bin/defaults -currentHost write com.apple.screensaver 'PrefsVersion' -int "100"
    /usr/bin/defaults -currentHost write com.apple.screensaver 'idleTime' -int "300"
    /usr/bin/defaults -currentHost write com.apple.screensaver "moduleDict" -dict-add "path" -string "/System/Library/Frameworks/ScreenSaver.framework/Resources/iLifeSlideshows.saver"
    /usr/bin/defaults -currentHost write com.apple.screensaver "moduleDict" -dict-add "type" -int "0" 
    /usr/bin/defaults -currentHost write com.apple.screensaver 'ShowClock' -bool "false"
    /usr/bin/defaults -currentHost write com.apple.screensaver 'tokenRemovalAction' -int "0"
    
    ## Set Type of Slideshow to "Flipup" (Results inconsistent)
    /usr/bin/defaults -currentHost write com.apple.ScreenSaver.iLifeSlideshows 'styleKey' -string "Flipup" 
    
    ## Set location of photos to Fan Art 
    /usr/bin/defaults -currentHost write com.apple.ScreenSaverPhotoChooser 'SelectedSource' -int "4"
    /usr/bin/defaults -currentHost write com.apple.ScreenSaverPhotoChooser 'SelectedFolderPath' "/Manehattan Files/Manehattan Backgrounds/Fan Art"
    /usr/bin/defaults -currentHost write com.apple.ScreenSaverPhotoChooser 'ShufflesPhotos' -bool "true"
    
    ## Removes the .plist LaunchAgent from inside the User Launch Agent Folder. 
    rm -f ~/Library/LaunchAgents/set-screensaver.plist
    
    exit

решение1

Итак, через JAMF один очень мудрый человек показал мне очень простую вещь, которую мне нужно было добавить в конец моего сценария:

killall cfprefsd

Решил проблему полностью. Хотя если зайти в Системные настройки, там все еще отображается выбранная старая заставка, она работает.

Связанный контент