Configurazione dello screensaver automatizzata nella riga di comando / script shell


2

Quindi sto configurando alcuni LaunchAgent modello utente predefinito per configurare uno screensaver predefinito per alcune delle fan art più popolari della mia azienda. (In realtà è stato davvero ben accolto dal team). Sono progettati come immagini di prima esecuzione quando accedono agli utenti Active Directory locali forzati.

Tuttavia, sto ottenendo risultati molto incoerenti ora ... vale a dire che non funziona affatto.

Il .plist avvia uno script di shell situato nella cartella / sbin /. La cosa strana è che funziona principalmente in un utente esistente.

Lo screensaver è pensato per usare "Flipup" con una specifica cartella di immagini, mescolare le immagini e impostare un tempo di inizio di 5 minuti.

Ad esempio, ho impostato intenzionalmente il salvaschermo "Utente con configurazione predefinita" prima su "Holiday Mobile", ho impostato la selezione di immagini su "Cosmos" (una delle impostazioni predefinite) con un tempo di inizio di 20 minuti e "shuffle images" non selezionato. Poi l'ho cambiato in "Arabesque".

Quando mi sono disconnesso e riconnesso per dare il via allo script, il risultato è stato che ho ricevuto "Holiday Mobile". Tuttavia, quando sono andato a "Impostazioni desktop e salvaschermo", in realtà è stato selezionato "Arabesque" sebbene l'anteprima di "Holiday Mobile" fosse mostrata con una "Opzioni salvaschermo" in grigio sotto. (Tuttavia, l'ora di inizio è cambiata in 5 minuti e quando ho fatto clic su "Holiday Mobile", "Ordine di scorrimento casuale" è stato verificato correttamente.)

Quindi, nell'utente di prova, va alla Fan Art, attivando Shuffle e cambiando il tempo.

Ma quando creo un nuovo utente dopo aver aggiunto il .plist LaunchAgent al modello utente predefinito, ottengo nient'altro che lo screensaver standard "Nome computer" su sfondo nero.

Sono totalmente confuso sul perché questo accada. Eventuali suggerimenti?

Ecco lo script della 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

Una delle fastidiose funzionalità di OS X è che se uno screensaver fa riferimento a una condivisione di file e lo screensaver viene attivato con la condivisione di file assente, OS X torna al valore predefinito (non prova mai più a condividere). Sebbene non sia il tuo caso d'uso originale, questo script dovrebbe essere un modo per aggirare quel problema, poiché lo script imposterà la posizione delle foto. Quindi è generalmente più utile di quanto si pensi.
John Faughnan,

Risposte:


3

Quindi attraverso JAMF, un uomo molto saggio mi ha mostrato una cosa molto semplice che avevo bisogno di aggiungere alla fine della mia sceneggiatura:

killall cfprefsd

Risolto il problema completamente. Mentre se vai nelle Preferenze di Sistema, mostra ancora il vecchio salvaschermo selezionato, funziona.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.