Comment faire en sorte que l'icône du dock cesse de rebondir après le démarrage de mon script d'application?

StackOverflow https://stackoverflow.com/questions/1006648

  •  06-07-2019
  •  | 
  •  

Question

J'ai donc récemment créé un wrapper .app pour un script zsh, mais lorsque je l'exécute, l'icône de l'application continue de s'afficher dans le Dock.

L’application est fondamentalement:

% find Example.app -type f
Example.app/Contents/Info.plist
Example.app/Contents/MacOS/wrapper.sh
% cat Example.app/Contents/Info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <!-- tell OSX what the name of the executable is -->
 <key>CFBundleExecutable</key>
 <string>wrapper.sh</string>
</dict>
</plist>
% cat Example.app/Contents/MacOS/wrapper.sh
#!/usr/bin/env zsh
# not my real script, but something else that hangs for a while
sleep 10
%

Vous pouvez également le récupérer à partir de github . / p>

Existe-t-il un moyen de faire en sorte que l'icône de l'application cesse de fonctionner, et se comporte comme une application normale, et reste assise avec un triangle à côté?

Était-ce utile?

La solution

L'icône d'une application va rebondir dans le dock OS X jusqu'à ce que l'application entre dans sa boucle d'événements principale et commence à répondre à la saisie de l'utilisateur. Comme votre script n'exécute probablement pas de boucle d'événement Carbon ou Cocoa (reportez-vous à la documentation relative à Carbon Event Manager et à NSApplication, respectivement), le Dock attend en permanence et attend qu'une application d'interface graphique de premier plan apparaisse régulièrement.

Un Ornithorynque est un outil d'encapsulation de script avec lequel j'ai eu du succès. Il peut exécuter sa propre boucle d’événement lors de l’exécution de votre script et effectuer un certain nombre d’autres tâches pratiques.

Autres conseils

Vous souhaitez DropScript . Le dock ne fonctionne pas avec des scripts shell comme celui-ci, il attend quelque chose d'un peu plus complet.

Je pense que si vous ajoutez LSUIElement à votre fichier Info.plist, cela devrait fonctionner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top