J'essaie d'écrire un fichier plist sur lequel, lorsque je reviens du mode veille, je veux toujours que le volume de mon Mac soit réduit au minimum. Cependant, il semble que le plist suivant ne fonctionne pas, avec une erreur : 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>
Aussi, quand ce qui suit ne fonctionne pas :
<?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 osascript
fonctionne bien si je l'exécute à partir de Terminal, donc je pense que c'est dû à la façon dont j'ai défini ma liste d'arguments dans la plist.
Donc, est-il possible de prendre l'argument de la chaîne de caractères comme "~"
dans launchd ? Ou y a-t-il d'autres choses qui m'échappent ?
Je soupçonne qu'il serait préférable d'écrire le fichier osascript
dans le shell script, et charger le shell script pour permettre au volume du Mac de se minimiser... mais est-ce la bonne approche ?
J'utilise OS X Mavericks 10.9.2.