Hintergrund
Ich möchte in der Lage sein, ein Benachrichtigungsfenster in OS X innerhalb eines Skripts anzuzeigen. Das Skript wird im Hintergrund ausgeführt, daher sollte die Benachrichtigung nicht an das Terminal gesendet, sondern in einem Dialogfeld angezeigt werden.
Was ich bisher gefunden habe
xmessage
Unter Linux würde ich wahrscheinlich xmessage
eine seiner Varianten dafür verwenden. Aber unter OS X ist das Starten des umfangreichen X-Servers nur für diese Aufgabe für meinen Geschmack übertrieben und zu langsam.
Finder-Dialog
Ich habe eine ähnliche Frage in diesem Forenthread gefunden , in der die "akzeptierte" Antwort diesen Befehl vorschlug:
osascript -e 'tell app "Finder" to display dialog "Hey!"'
Unter OS X 10.7 wird der resultierende Dialog jedoch nicht sofort angezeigt. Stattdessen springt das Finder-Symbol ab und der Dialog wird erst sichtbar, nachdem ich auf das Symbol geklickt habe. Zu viele Mausklicks, zu störend.
Notifier
Es gibt eine Antwort auf Super User, die ein Tool namens Terminal-Notifier vorschlägt . Leider scheint das nur für OS X 10.8 zu funktionieren , daher hilft es in meinem Fall nicht.
Frage
Gibt es also ein Tool, das entweder in OS X 10.7 enthalten oder frei verfügbar ist und es dem Benutzer ermöglicht, einen kleinen Dialog anzuzeigen, ohne zu viel Aufwand zu verursachen?
Versuchen
tell application "System Events" to display dialog "Plug the Digispark into the USB port." buttons {"OK"} with icon caution
Getestet unter OS X 10.8.2
quelle
buttons {"OK"}
dass das Dialogfeld beim Aufrufen nicht den Fokus erhält. Wenn Sie es weglassen, erhalten Sie eine Abbrechen-Schaltfläche, die wir nicht möchten, aber zumindest der Dialog erhält den Fokus. Gibt es eine Möglichkeit, den Fokus zu erhalten, auch wenn diese Klausel verwendet wird?