Como faço para fazer o ícone do dock parar de saltar após o início do script de wrapper de aplicativos?

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

  •  06-07-2019
  •  | 
  •  

Pergunta

Então eu fiz recentemente um .app Wrapper para um script ZSH, mas quando eu o executo, o ícone para o aplicativo continua pulando na doca.

O aplicativo é basicamente:

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

Você também pode Pegue -o do Github.

Existe alguma maneira de conseguir que o ícone do aplicativo pare de pular e agir como um aplicativo normal e apenas ficar sentado com um triângulo ao lado dele?

Foi útil?

Solução

O ícone de um aplicativo saltará no Dock OS X até que o aplicativo entre seu loop de evento principal e comece a responder à entrada do usuário. Como seu script provavelmente não executa um loop de eventos de carbono ou cacau (consulte a documentação para o Gerenciador de Eventos de Carbono e a NSApplication, respectivamente), o dock está esperando continuamente, esperando que um aplicativo de GUI de primeiro plano regular surja.

Uma ferramenta de embrulho de script com que tive sucesso é Platypus. Ele pode executar seu próprio loop de eventos ao executar seu script e fazer várias outras coisas convenientes.

Outras dicas

Você quer Dropscript. A doca não funciona com scripts de shell como esse, espera algo um pouco mais completo.

Eu acho que se você adicionar lsuielement ao seu arquivo info.plist, ele deve funcionar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top