
Portanto, estou configurando alguns LaunchAgents de modelo de usuário padrão para configurar um protetor de tela padrão para algumas das fan art mais populares da minha empresa. (Na verdade, foi muito bem recebido pela equipe). Eles são projetados como imagens de primeira execução quando fazem login nos usuários do Active Directory local forçado.
No entanto, estou obtendo resultados muito inconsistentes agora... ou seja, não está funcionando de jeito nenhum.
O .plist
inicia um Shell Script localizado na pasta /sbin/. O estranho é que funciona principalmente em um usuário existente.
O protetor de tela pretende usar "Flipup" com uma pasta específica de imagens, embaralhar as fotos e definir um horário de início de 5 minutos.
Por exemplo, defino intencionalmente meu protetor de tela de "usuário de configuração padrão" primeiro para "Holiday Mobile", defino a seleção de imagem para "Cosmos" (um dos padrões) com um horário de início de 20 minutos e desmarco "embaralhar imagens". Então mudei para “Arabesco”.
Quando saí e entrei novamente para iniciar o script, o resultado foi "Holiday Mobile". No entanto, quando fui para "Configurações da área de trabalho e proteção de tela", "Arabesco" foi selecionado, embora a visualização do "Holiday Mobile" estivesse aparecendo com "Opções de proteção de tela" esmaecidas abaixo. (No entanto, o horário de início mudou para 5 minutos e quando cliquei em "Holiday Mobile", "Shuffle Slide Order" foi verificado corretamente.)
Então, no usuário de teste, ele vai para Fan Art, ativando Shuffle e alterando o tempo.
Mas quando crio um novo usuário após adicionar o LaunchAgent .plist
ao modelo de usuário padrão, não recebo nada além do protetor de tela padrão "Nome do computador" em um fundo preto.
Estou totalmente confuso sobre por que isso está ocorrendo. Alguma sugestão?
Aqui está o 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
Responder1
Então, através do JAMF, um homem muito sábio me mostrou uma coisa muito simples que eu precisava adicionar ao final do meu script:
killall cfprefsd
Resolveu o problema inteiramente. Embora se você entrar nas Preferências do Sistema, ele ainda mostra o protetor de tela antigo sendo selecionado, ele funciona.