7 votes

OS X - Comment faire en sorte que les applications qui démarrent ne prennent pas le focus (de manière optionnelle) ?

Existe-t-il un moyen de faire en sorte que l'application de démarrage ne prenne pas le focus ? Existe-t-il un paramètre permettant de ne pas faire apparaître les nouvelles fenêtres par-dessus ce sur quoi nous travaillons actuellement ? (Peut-être une option permettant de les faire apparaître en dessous, ou de les réduire au minimum) ?

Le contexte : J'utilise des scripts en ligne de commande (Terminal) pour charger mon environnement de travail chaque jour, et je ne peux pas utiliser mon ordinateur tant que le scripts est en cours d'exécution. (Pas de problème, je peux juste aller faire d'autres choses pendant quelques minutes). VirtualBox est principalement l'application où je remarque cela.

5voto

Fuzzy Purple Monkey Points 702

open -jga TextEdit ouvre TextEdit caché ( -j ) et sans le mettre au premier plan ( -g ). Le site -j a été ajoutée en 10.8 et elle n'est affichée que dans le message d'aide et non dans la page de manuel. Si TextEdit est déjà en cours d'exécution, open -ja TextEdit (sans -g ) ne ferait que mettre TextEdit au premier plan et non pas caché. Pour certaines applications comme TextEdit et Mail, open -jg ouvre une nouvelle fenêtre visible si l'application est en cours d'exécution mais n'a pas de fenêtre ouverte, mais vous pouvez utiliser quelque chose comme pgrep -x TextEdit||open -jga TextEdit comme solution de rechange.

Une deuxième option dans les versions 10.9 et ultérieures est la suivante lsappinfo launch launchandhide=true nofront=true /Applications/TextEdit.app .

Une troisième option est osascript -e 'launch app "TextEdit"' . Contrairement à la open y lsappinfo il est bloqué jusqu'à la fin de l'ouverture de l'application. Pour certaines applications telles que TextEdit et Mail, la fonction launch La commande ouvre une nouvelle fenêtre visible si l'application n'est pas déjà en cours d'exécution.

Edit : aucune des options ci-dessus ne semble fonctionner avec VirtualBox, mais vous pouvez cacher VirtualBox après l'avoir ouvert :

open -jga VirtualBox;lsappinfo setinfo -app VirtualBox kLSApplicationIsHiddenKey=true

osascript -e 'launch app "VirtualBox"' -e 'delay 1' -e 'tell app "System Events" to set visible of process "VirtualBox" to false'

0voto

Yannick Points 113

Si vous créez votre propre projet, dans le fichier info.plist des applications, ajoutez ceci

enter image description here

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X