Comment lancer plusieurs applications ensemble?

0

Je me demandais s'il existait un moyen facile de lancer une application spécifique chaque fois qu'une autre application est lancée. En d'autres termes, je souhaite lancer plusieurs applications ensemble en tant que groupe.

Pour être plus précis, j'ai une petite application qui télécharge les paroles de la piste iTunes en cours de lecture et une autre qui écrit la piste en cours de lecture dans un fichier. Le problème, c’est que j’oublie souvent de lancer ces applications lorsque je lance iTunes. Je voudrais qu'ils ouvrent à chaque fois J'ouvre iTunes.

Toute suggestion serait appréciée.

BringMyCakeBack
la source

Réponses:

1

Enregistrer un plist comme ça ~/Library/LaunchAgents/some.label.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>some.label</string>
  <key>ProgramArguments</key>
  <array>
    <string>bash</string>
    <string>-c</string>
    <string>if pgrep -x iTunes;then open -jga Some\ Application;open -jga Another\ Application;fi</string>
  </array>
  <key>WatchPaths</key>
  <string>~/Library/Preferences/com.apple.iTunes.plist</string>
</dict>
</plist>

Puis courir launchctl load ~/Library/LaunchAgents/some.label.plist.

~/Library/Preferences/com.apple.iTunes.plist semble être modifié à chaque fois que iTunes est ouvert. Le programme sera exécuté à chaque fois ~/Library/Preferences/com.apple.iTunes.plist est modifié (et il y a au moins 10 secondes à partir de la dernière exécution), mais c'est probablement mieux que d'exécuter le programme par exemple toutes les 5 secondes.

Pour la plupart des applications, open -jg ouvre l'application cachée et sans la rendre au premier plan. Pour certaines applications telles que TextEdit, une nouvelle fenêtre visible s’ouvre si l’application est ouverte mais n’a pas de fenêtre, mais vous pouvez utiliser pgrep -x TextEdit||open -jga TextEdit ou lsappinfo launch nofront=true launchandhide=true /Applications/TextEdit.app au lieu.

Lri
la source
Wowie Zowie! Cette réponse est tellement géniale que j'aimerais pouvoir l'accepter deux fois! J'ai installé le plist et tout fonctionne exactement comme je le voulais.
BringMyCakeBack
Après quelques essais supplémentaires, il s'avère que com.apple.iTunes.plist est également modifié chaque fois que vous rechargez des podcasts ou synchronisez des périphériques. Pour éviter les démarrages d'applications inutiles, j'ai ajouté un contrôle booléen à la première ligne de la commande: if pgrep -x iTunes &amp;&amp; ! pgrep -x OtherApp; ... (Le &amp est nécessaire pour échapper à l'esperluette dans le plist XML.)
BringMyCakeBack