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

3783
ghostof101

Поэтому я настраиваю некоторые пользовательские шаблоны запуска по умолчанию для настройки заставки по умолчанию для некоторых из самых популярных фан-артов моей компании. (Это на самом деле было очень хорошо принято командой). Они создаются как образы первого запуска при входе в свои принудительно локальные пользователи Active Directory.

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

.Plist запускает сценарий оболочки, расположенный в папке / sbin /. Странно то, что это в основном работает с существующим пользователем.

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

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

Когда я вышел из системы и снова вошел в систему, чтобы запустить сценарий, я получил "Holiday Mobile". Тем не менее, когда я перешел в «Настройки рабочего стола и заставки», «Арабеска» была фактически выбрана, хотя предварительный просмотр «Holiday Mobile» показывался с затененными «Параметры заставки» ниже. (Тем не менее, время начала изменилось на 5 минут, и когда я нажал «Holiday Mobile», «Shuffle Slide Order» был проверен должным образом.)

Так что у тестового пользователя это идет в 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 
2
Одной из досадных особенностей OS X является то, что, если заставка ссылается на общую папку, и эта заставка активируется при отсутствии общей папки, OS X возвращается к значению по умолчанию (никогда не пытается поделиться снова). Хотя этот сценарий и не является вашим первоначальным вариантом использования, он должен быть способом обойти эту проблему, так как он будет определять местоположение фотографий. Так что это в целом полезно, чем вы думаете. John Faughnan 8 лет назад 0

1 ответ на вопрос

3
ghostof101

So through JAMF, a very wise man showed me a very simple thing I needed to add to the end of my script:

killall cfprefsd 

Solved the problem entirely. While if you go into System Preferences, it still shows the old screensaver being selected, it works.