He estado intentando escribir un archivo plist en el que, cuando vuelvo del modo de suspensión, siempre quiero que el volumen de mi Mac sea el mínimo. Sin embargo, parece que el siguiente error no funciona, con un error: 1:1: syntax error: Expected string but found end of script. (-2741)
<?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>
<false/>
<key>Label</key>
<string>my.plist</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/osascript</string>
<string>-e</string>
<string>"</string>
<string>set</string>
<string>volume</string>
<string>output</string>
<string>volume</string>
<string>0</string>
<string>"</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Además, cuando lo siguiente no funciona:
<?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>
<false/>
<key>Label</key>
<string>my.plist</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/osascript</string>
<string>-e</string>
<string>"set volume output volume 0"</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
El comando osascript
funciona bien si lo ejecuto desde dentro de Terminal, por lo que creo que se debe a que establezco mi lista de argumentos en la lista.
Entonces, ¿es factible tomar el argumento de cadena como "~"
en launchd? ¿O hay algunas otras cosas que me estoy perdiendo aquí?
Sospecho que podría ser mejor escribir el comando osascript
en el script de shell y cargar el script de shell para permitir que el volumen de Mac se minimice ... pero ¿es el enfoque correcto?
Uso OS X Mavericks 10.9.2.