¿Cómo cambiar el protector de pantalla usando la terminal (sin usar el Panel de preferencias)?

Me gustaría cambiar el protector de pantalla "Flurry" de Ken Burns sin usar el panel de Preferencias, directamente usando terminal o comando.

Respuestas (2)

  1. Salga de Preferencias del sistema.

  2. Ubique la plist relevante en la terminal por

    ls ~/Library/Preferences/ByHost/com.apple.screensaver.*.plist
    

    Deberías ver algo como

    /Users/<username>/Library/Preferences/ByHost/com.apple.screensaver.0B39A0DE-D1EE-59FF-85C0-6EA16FCB015B.plist
    

    Tenga en cuenta que la cadena alfanumérica delimitada por guiones. Puede depender del host, a juzgar por el ByHostnombre de ese directorio. (O tal vez no lo sea. Por el momento solo tengo una Mac a mi disposición, así que no puedo decirlo).

  3. En la terminal, ejecuta los siguientes comandos (con la cadena alfanumérica delimitada por guiones reemplazada por lo que encontraste en el último paso):

    defaults write ~/Library/Preferences/ByHost/com.apple.screensaver.0B39A0DE-D1EE-59FF-85C0-6EA16FCB015B.plist moduleDict -dict moduleName iLifeSlideshows path /System/Library/Frameworks/ScreenSaver.framework/Resources/iLifeSlideshows.saver type 0
    defaults read ~/Library/Preferences/ByHost/com.apple.screensaver.0B39A0DE-D1EE-59FF-85C0-6EA16FCB015B.plist
    

Eso es todo. Hay un problema con este enfoque: parece que varios protectores de pantalla están registrados con esto iLifeSlideshows.saver(por ejemplo, Classic), y no pude ubicar el plist que controla cuál se muestra. Pero de acuerdo con mis pruebas, si eligió "Ken Burns" en las Preferencias del sistema y luego lo cambió a "Flurry", entonces cuando ejecute los comandos anteriores obtendrá "Ken Burns" de vuelta. De lo contrario, no hay garantía; por ejemplo, puede obtener "Classic" si ese es el último usado de iLifeSlideshows.saver.

A partir de Monterey, la ubicación predeterminada adicional es com.apple.screensaver.iLifeSlideshows. Verificar defaults -currentHost read com.apple.screensaver.iLifeSlideshowsrevela el protector de pantalla de iLife más reciente, incluso si tiene un protector de pantalla que no es de iLife configurado como el actual. Sin embargo, la escritura predeterminada no parece ser suficiente para cambiar esta configuración.
Y luego encontrar esta discusión de Apple en solitario de un administrador de JAMF, discusiones.apple.com/thread/7041066 , el truco para los protectores de pantalla de iLife es ejecutar killall cfprefsddespués de configurar la tecla de estilo

Entorno:
MacBook Pro (13 pulgadas, mediados de 2012)
macOS Sierra versión 10.12.4

defaults -currentHost write com.apple.screensaver moduleDict -dict moduleName Flurry path /System/Library/Screen\ Savers/Flurry.saver/ type 0

comprobar:
defaults -currentHost read com.apple.screensaver
o

open /System/Library/CoreServices/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine.app

## older mac OS versions pre High-sierra
## open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app



adaptado de aquí:
http://krypted.com/mac-security/mac-setting-screen-saver-from-the-cli/
(Pero necesitaba ser actualizado/mejorado)