Si vous utilisez un script shell pour ouvrir des applications, essayez quelque chose comme ceci :
osascript -e 'launch app "ScreenRecycler"'
pgrep -qx Alfred||open -jga Alfred
sleep 10
pgrep -qx Mail||open -jga Mail
pgrep -qx Transmission||open -jga Transmission
Vous pouvez exécuter le script au démarrage en enregistrant par exemple le plist ci-dessous comme ~/Library/LaunchAgents/some.label.plist
.
Label
some.label
ProgramArguments
bash
-c
osascript -e 'launch app "ScreenRecycler"'
pgrep -qx Alfred||open -jga Alfred
sleep 10
pgrep -qx Mail||open -jga Mail
pgrep -qx Transmission||open -jga Transmission
RunAtLoad
osascript -e 'launch app "AppName"
et osascript -e 'activate app "AppName"
sont bloqués jusqu'à ce que l'application ait fini d'ouvrir. launch
ne rend pas une application au premier plan, mais activate
oui. Si une application comme TextEdit ou Mail n'est pas en cours d'exécution, launch
et activate
ouvrent une nouvelle fenêtre par défaut visible. osascript -e 'tell app "TextEdit"' -e reopen -e activate -e end
rouvre également une fenêtre par défaut si TextEdit est en cours d'exécution mais n'a pas de fenêtres ouvertes.
open -jg
ouvre généralement une application masquée (-j
) et sans la rendre au premier plan (-g
). Pour certaines applications comme TextEdit et Mail, il ouvre une nouvelle fenêtre visible si l'application est en cours d'exécution mais n'a pas de fenêtres ouvertes. Pour éviter cela, vérifiez si l'application est déjà en cours d'exécution avec par exemple pgrep
. L'option -j
pour open
a été ajoutée dans 10.8 et n'apparaît que dans le message d'aide et non dans la page du manuel.
lsappinfo launch launchandhide=true nofront=true /Applications/TextEdit.app
ouvre également toujours TextEdit masqué et sans le rendre au premier plan. lsappinfo
a été ajouté dans 10.9. Je ne sais pas comment utiliser lsappinfo
pour attendre que l'application ait fini d'ouvrir.
Les paramètres des éléments de connexion sont stockés dans ~/Library/Preferences/com.apple.loginitems.plist
. Vous pouvez ajouter un élément de connexion avec AppleScript :
osascript -e 'tell application "System Events" to make new login item at end with properties {path:"/Applications/TextEdit.app", name:"TextEdit", hidden:true}'
Certaines applications et processus sont lancés via des listes de propriétés dans ~/Library/LaunchAgents/
, /Library/LaunchAgents/
ou /Library/LaunchDaemons/
. `_com.apple.SMLoginItemBookmarks` dans /var/db/launchd.db/com.apple.launchd.peruser.$UID/overrides.plist
est utilisé pour configurer les éléments de connexion pour les applications auxiliaires utilisées par des applications sandboxées comme ScreenFlow, DayOne et TuneUp.
Depuis 10.7, il y a eu un relatively long delay avant que certains éléments de connexion ou jobs de launchd ne soient démarrés. Je ne connais pas de moyen de le réduire, mais la FAQ de KeyRemap4MacBook dit que cela est causé par Resume :
KeyRemap4MacBook ne fonctionne pas après le démarrage sous OS X 10.7. Que dois-je faire ?
La fonction "Resume" introduite par Lion retarde le lancement des applications au démarrage.
Jusqu'à ce que KeyRemap4MacBook.app soit lancé au démarrage, la disposition du clavier n'est pas modifiée. Veuillez patienter une minute jusqu'à ce que le menu de KeyRemap4MacBook soit affiché.
0 votes
FYI, jusqu'à présent, et je ne suis pas content de cette solution, mais j'ai sauté le pas et acheté un programme qui gère cela pour moi. Je ne mentionnerai pas le nom jusqu'à présent jusqu'à ce que je reçoive éventuellement des commentaires ici ou si quelqu'un veut une recommandation car je ne veux pas être perçu comme faisant de la publicité. Jusqu'à présent, cela fonctionne bien, mais je préférerais une solution qui corresponde à ma demande initiale et qui puisse modifier correctement les services de lancement sans avoir à compter sur une application qui repose sur une béquille au démarrage et qui ne fait que bloquer le démarrage de l'application (bien que je dois dire que les retards de temps et les ajouts de dépendances de ce petit truc sont bien faits).
0 votes
Nous demandons simplement que les personnes divulguent toute relation avec un programme qu'ils recommandent (et que ce ne soit pas la seule raison pour laquelle vous participez sur le site). Les recommandations honnêtes sont acceptables tant qu'elles sont pertinentes et ne ressemblent pas à un infopublicité tardive.