Programmhinweise mit Growl in AppleScript nutzen

Growl ist ein kleines nützliches Tool um sich Statusmeldungen aus Programmen wie Coda, Skype, Adium oder Druckertreibern heraus auf den Bildschirm anzeigen zu lassen. Dabei ist Growl sehr flexibel und Anpassungsfähig. Angefangen vom Design der Meldungen bis hin zur Art und Weise wie man benachrichtigt werden will, und das sogar für jedes einzelne Programm welches den Growl Dienst unterstützt.

Die Qual der Wahl

Eines natürlich vorweg. Wer vorhat seine Workflows und AppleScripte weiterzugeben, der kann natürlich nicht Voraussetzen das der Anwender ebenso Growl installiert hat. Entsprechend sollte wohl überlegt sein ob man das entsprechende Script mit oder ohne Growlunterstützung schreibt oder nicht, und wenn man sich für die Growlunterstützung entscheidet, ob man dann nicht besser eine Abfrageroutine implementiert welche prüft ob Growl bzw. growlnotify auch installiert ist.

Und hier kommen wir auch zur nächsten Entscheidung. Es gibt 2 Möglichkeiten Growl anzusprechen. Einmal über das Programm GrowlHelperApp und zum anderen über das Commandlinetool growlnotify. Wobei zu beachten ist das growlnotify zwar Bestandteil des Growlinstallationspaketes ist aber separat installiert werden muss.

GrowlHelperApp

Anders als bei growlnotify muss man bei der GrowlHelperApp erst das eigene Script als Anwendung in Growl registrieren. Das ganze muss nur einmal geschehen.Sobald das Script einmal registriert wurde kann man auf die dort befindlichen Einstellungen jederzeit zurückgreifen.

tell application "GrowlHelperApp"
	register as application ¬
		"ScriptName" all notifications {"Notify1", "Notify2"} ¬
		default notifications {"Notify1"} ¬
		icon of application "Script Editor"
end tell

Nach dem Ausführen dieses Befehls über den Scripteditor befindet sich im PrefPane von Growl im Tab Anwendungen unser Script "ScriptName" mit den beiden Notifications Notify1 und Notify2 wobei Notify1 als aktiv markiert ist. Als Icon für unser eben angemeldetes Script wurde das Script Editor Icon eingesetzt.Ab diesem Zeitpunkt kann man sich Growl Hinweise auf den Bildschirm mit folgendem AppleScript senden lassen:

tell application "GrowlHelperApp"
	notify with name ¬
		"Notify1" title ¬
		"Ich bin fertig!" description ¬
		"Alle anstehenden Arbeiten erledigt" application name "ScriptName"
end tell

Zu beachten ist hierbei das nur "Notify1" funktioniert. "Notify2" ist im Moment noch inaktiv bzw. nicht als aktiv markiert. Das kann man entweder ebenfalls über AppleScript oder über das PrefPane von Growl erreichen.

growlnotify

Prüfen ob Growl auf dem System läuft

Wie weiter oben bereits angesprochen sollte man entsprechende Routinen in seine Scripte einbauen wenn man vorhat diese weiterzugeben und man aber auf Growl auch nicht verzichten kann bzw. will. Mit folgenden Snippet kann man prüfen ob Growl auf dem System bereits installiert ist und auch läuft.

tell application "System Events"
	set isRunning to ¬
		count of (every process whose name is "GrowlHelperApp") > 0
end tell

Installation von growlnotify

Hier kommt noch ein Installationshowto für growlnotify