Come posso fare in modo che l'icona del dock non si riavvii dopo l'avvio dello script del wrapper dell'app?

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

  •  06-07-2019
  •  | 
  •  

Domanda

Quindi di recente ho creato un wrapper .app per uno script zsh, ma quando lo eseguo, l'icona dell'app continua a saltellare nel Dock.

L'app è sostanzialmente:

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

Puoi anche prenderlo da github .

Esiste un modo per ottenere l'icona dell'app per smettere di saltare e agire come un'app normale, e semplicemente sedermi lì con un triangolo accanto?

È stato utile?

Soluzione

L'icona di un'applicazione rimbalzerà nel Dock di OS X finché l'app non entrerà nel suo ciclo di eventi principale e inizierà a rispondere all'input dell'utente. Poiché il tuo script probabilmente non esegue un ciclo di eventi Carbon o Cocoa (vedi rispettivamente la documentazione per Carbon Event Manager e NSApplication), il Dock è in attesa continua, in attesa di una normale applicazione GUI in primo piano.

Uno strumento per il wrapping degli script con cui ho avuto successo è Platypus . Può eseguire il proprio ciclo di eventi durante l'esecuzione dello script e fare una serie di altre cose utili.

Altri suggerimenti

Desideri DropScript . Il dock non funziona con script di shell del genere, si aspetta qualcosa di più completo.

Penso che se aggiungi LSUIElement al tuo file Info.plist, dovrebbe funzionare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top