
Así que estoy configurando algunos LaunchAgents de plantilla de usuario predeterminados para configurar un protector de pantalla predeterminado para algunos de los fan art más populares de mi empresa. (De hecho, ha sido muy bien recibido por el equipo). Están diseñados como imágenes de primera ejecución cuando inician sesión en sus usuarios de Active Directory local forzado.
Sin embargo, ahora estoy obteniendo resultados muy inconsistentes... es decir, no funciona en absoluto.
Lanza .plist
un Shell Script ubicado en la carpeta /sbin/. Lo extraño es que funciona principalmente en un usuario existente.
El protector de pantalla está diseñado para utilizar "Flipup" con una carpeta específica de imágenes, mezclar las imágenes y establecer un tiempo de inicio de 5 minutos.
Por ejemplo, primero configuré intencionalmente mi protector de pantalla de "usuario de configuración predeterminado" en "Holiday Mobile", configuré la selección de imágenes en "Cosmos" (uno de los valores predeterminados) con un tiempo de inicio de 20 minutos y desmarqué "imágenes aleatorias". Luego lo cambié a "arabesco".
Cuando salí y volví a iniciar sesión para iniciar el script, el resultado fue que obtuve "Holiday Mobile". Sin embargo, cuando fui a "Configuración de escritorio y protector de pantalla", en realidad se seleccionó "Arabesque", aunque la vista previa de "Holiday Mobile" se mostraba con "Opciones de protector de pantalla" atenuadas debajo. (Sin embargo, la hora de inicio cambió a 5 minutos y cuando hice clic en "Holiday Mobile", "Orden aleatorio de diapositivas" se marcó correctamente).
Entonces, en el usuario de prueba, va a Fan Art, activa Shuffle y cambia la hora.
Pero cuando creo un nuevo usuario después de agregar LaunchAgent .plist
a la plantilla de usuario predeterminada, no aparece nada más que el protector de pantalla estándar "Nombre de la computadora" sobre un fondo negro.
Estoy totalmente confundido sobre por qué sucede esto. ¿Alguna sugerencia?
Aquí está el script de shell:
#!/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
Respuesta1
Entonces, a través de JAMF, un hombre muy sabio me mostró algo muy simple que necesitaba agregar al final de mi guión:
killall cfprefsd
Resolvió el problema por completo. Mientras que si ingresa a Preferencias del Sistema, todavía muestra que se seleccionó el protector de pantalla anterior, funciona.