¿Cómo hago para que el ícono del dock deje de rebotar después de que comience mi script de envoltura de aplicaciones?

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

  •  06-07-2019
  •  | 
  •  

Pregunta

Así que recientemente hice un contenedor .app para un script zsh, pero cuando lo ejecuto, el ícono de la aplicación sigue saltando en el Dock.

La aplicación es básicamente:

% 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
%

También puede tomarlo de github .

¿Hay alguna forma en que pueda hacer que el ícono de la aplicación deje de saltar y actúe como una aplicación normal, y simplemente sentarme allí? con un triángulo al lado?

¿Fue útil?

Solución

El ícono de una aplicación rebotará en el Dock de OS X hasta que la aplicación ingrese a su bucle principal de eventos y comience a responder a las entradas del usuario. Como su script probablemente no ejecuta un bucle de eventos de Carbon o Cocoa (consulte la documentación de Carbon Event Manager y NSApplication, respectivamente), el Dock está esperando continuamente, esperando que surja una aplicación GUI en primer plano.

Una herramienta de ajuste de script con la que he tenido éxito es Platypus . Puede ejecutar su propio bucle de eventos mientras ejecuta su secuencia de comandos, y hacer una serie de otras cosas convenientes.

Otros consejos

Desea DropScript . El dock no funciona con scripts de shell como ese, espera algo un poco más completo.

Creo que si agrega LSUIElement a su archivo Info.plist, debería funcionar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top