También puede crear un archivo plist que coloque en su carpeta LaunchAgent de usuario.
/Users/username/Library/LaunchAgents/com.username.runscreensaver.plist
Usted que cargó en una terminal con:
launchctl load /Users/username/Library/LaunchAgents/com.username.runscreensaver.plist
O descárgalo con:
launchctl unload /Users/username/Library/LaunchAgents/com.username.runscreensaver.plist
Aquí está el contenido de este archivo plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.username.runscreensaver</string>
<key>ProgramArguments</key>
<array>
<string>/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine</string>
<string>-background</string>
</array>
<key>ThrottleInterval</key>
<integer>0</integer>
</dict>
</plist>
Desafortunadamente (al menos en 10.9.5), ScreenSaverEngine configuró el nivel de ventana incorrecto (debajo de kCGDesktopWindowLevel) para que funcione correctamente con el control de la misión y los espacios que pueden surgir en algunos problemas durante el reinicio, la pantalla de cambio, el inicio de sesión y el cierre de sesión que conduce a un Protector de pantalla invisible.
Para solucionar estos problemas, debe escribir su propio protector de pantalla que herede las propiedades de ScreenSaverEngine mientras se ejecuta y corregir el nivel de la ventana (por ejemplo, [self.window setLevel: kCGDesktopWindowLevel];).