¿Pueden establecerse activadores para que cuando se inicie la "aplicación A", se inicie automáticamente otra "aplicación B"? Lo ideal sería que la solución enviara un mensaje de salida a la "App B" cuando la "App A" se cierra, pero lo importante es la secuencia de lanzamiento.
Respuesta
¿Demasiados anuncios?Guarda un plist como este ~/Library/LaunchAgents/test.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>Label</key>
<string>test</string>
<key>ProgramArguments</key>
<array>
<string>bash</string>
<string>-c</string>
<string>while sleep 5; do
if pgrep -x Preview; then
pgrep -x TextEdit || open -jga TextEdit
else
pgrep -x TextEdit && osascript -e 'quit app "TextEdit"'
fi
done</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
A continuación, cargue el plist con launchctl load ~/Library/LaunchAgents/test.plist
o cerrando la sesión y volviéndola a abrir.
open -jg
se supone que abre una aplicación de forma oculta y sin levantar ningún Windows. Para algunas aplicaciones basadas en documentos como TextEdit, abre una nueva ventana visible si la aplicación está abierta pero no tiene ventanas visibles.
pgrep
y el -j
opción para open
se añadieron en 10.8. El -j
sólo se muestra en el mensaje de ayuda y no en la página de manual.