Schlagwort-Archiv für: Hazel

Mac-Automatisierung mit Hazel

03 Okt 2012
3. Oktober 2012

Unser Computer-Alltag besteht oft aus sich regelmäßig wiederholenden Schritten. Da werden z.B. Rechnungen heruntergeladen, umbenannt und in einen vorgesehenen Ordner verschoben. Oder es wird ein Verzeichnis, in dem sich Backups angehäuft haben, manuell ein wenig ausgemistet. Nun könnte man sich doch fragen: Hey, wozu habe ich einen Computer, der soll mir solche regelmäßigen Routinejobs gefälligst abnehmen. Und ja, mit den richtigen Werkzeugen ausgerüstet macht er das sogar.

Hazel (von Noodlesoft für 25 $ zu erwerben, 14-Tage-Testversion verfügbar) ist so ein Tool, ohne das mein Mac irgendwie unvollständig wäre. Vom Grundprinzip her überwacht es Ordner anhand von uns definierter Kriterien. Schlägt ein solche Bedingung zu, passiert mit den betroffenen Dateien das, was wir ebenfalls festlegen können. Von der Arbeitsweise erinnert das an die Ordner-Aktionen, welche OS X von Hause aus kennt, Hazel ist allerdings um ein vielfaches mächtiger. Es bietet sogar so viele Möglichkeiten, dass ich diese hier nur anhand von wenigen Beispielen andeuten kann und es anschließend meinen Lesern überlassen muss, Hazel an die eigenen Bedürfnisse anzupassen und möglichst viele alltägliche Arbeitsschritte zu automatisieren.

Hazel ist eine sogenannte “Preference Pane”, d.h., es ist nach der Installation als Icon in unseren Systemeinstellungen zu finden:

Hazel 1

Die Benutzeroberfläche sieht dann so aus:

Hazel 2

Von den drei Abschnitten “Folders”, “Trash” und “Infos” ist “Folders” der wichtigste. In der linken Spalte stehen alle Ordner, für die es Hazel-Regeln gibt, in der rechten Spalte finden wir eine Liste aller Hazel-Regeln für diesen Ordner. Die Plus- und Minus-Knöpfe fügen Ordner/Regeln hinzu bzw. löschen ausgewählte Einträge.

Schauen wir uns einfach ein Beispiel an. Wir können in OmniFocus, einem Aufgaben-Mangager, den ich in einem meiner ersten Artikel vorgestellt habe, einen Ordner für automatische Backups festlegen:

Hazel 3

Dieser wird mit der Zeit sehr voll und nimmt uns unnötig viel Platz weg. Denn es macht IMHO keinen Sinn Uralt-Sicherungen aufzuheben, sagen wir mal die letzten 90 Tage sollten genügen. Wir fügen also der linken Spalte unseren “OmniFocus Backups”-Ordner hinzu und legen mit Hilfe der rechten Spalte eine neue Hazel-Regel an. Und die sieht so aus:

Hazel 4

Die Regel, welche ich “Cleanup” genannt habe, besagt, dass alle Dateien, die mit “OmniFocus” beginnen und älter als 90 Tage sind, in den Papierkorb verschoben werden. Eine Regel besteht immer aus dem Namen (oberer Teil), den Kriterien (mittlerer Teil) und dem, was mit den betroffenen Dateien geschehen soll (unterer Teil). Die Regeln sind sehr vielfältig, wir können festlegen, ob ein oder alle Kriterien erfüllt sein müssen und können diese sogar noch verschachteln (was für diese Einführung allerdings zu weit führen würde). Natürlich sind auch negative Kriterien möglich, d.h., es wären dann die Dateien betroffen, welche diese nicht erfüllen. Mögliche Kriterien sind z.B. Dateiname (oder Teile davon), die verschiedenen Datumsangaben zu einer Datei, Spotlight-Kommentare, Art der Datei, Finder-Farbmarkierung der Datei, Größe, Inhalt (!) und vieles mehr.

Die möglichen Aktionen umfassen unter anderem:

  • verschieben, kopieren, umbenennen oder löschen
  • in Unterordner einsortieren
  • mit einer Finder-Farbmarkierung versehen
  • mit einem Spotlight-Kommentar versehen
  • in iTunes, Aperture oder iPhoto importieren
  • mit einem AppleScript weiterverarbeiten

Es können beliebig viele Aktionen nacheinander ausgeführt werden.

Nach Erstellen der Regel läuft Hazel ständig im Hintergrund, beobachtet die Ordner, für die es Regeln gibt, und führt diese ggf. aus. Man kann Hazel oder die Regeln für einzelne Ordner natürlich auch pausieren.

Überlegt man sich mal, welche Kombinationsmöglichkeiten aus Kriterien und Aktionen möglich sind, erahnt man langsam, wie mächtig Hazel ist und wieviel Arbeit uns dieser kleine Helfer in der täglichen Praxis abnehmen kann. Schauen wir uns ein zweites Beispiel an. Einmal im Monat lade ich meine Telekom-Rechnung aus dem Kundencenter herunter. Früher hab ich die Datei dann selbst umbenannt und in den richtigen Ordner verschoben, nun macht das Hazel für mich (überwacht wird der Downloads-Ordner):

Hazel 5

Die Rechnungen enthalten immer eine bestimmte Ziffernfolge und sind PDFs. Einzelverbindungsnachweise, die man ebenfalls herunterladen kann, enthalten die Zeichenkette “EVN” und werden ausgenommen, da ich für sie eine eigene Regel habe. Die Rechnungen werden in einen Rechnungsordner verschoben, nach dem Schema Telekom-Rechnung-<Jahr>-<Monat>.pdf umbenannt und mit “rechnung” verschlagwortet. Außerdem lasse ich Hazel den Rechnungsordner öffnen und eine Mitteilung anzeigen. Die Umbenennungsfunktion ist wie wir sehen sehr flexibel, da z.B. auch Datumsbestandteile mit einfliessen können. Sogar der Name des Ordners, in den verschoben wird, muss nicht fest sein, sondern könnte z.B. “Rechnungen-<Jahr>” lauten, wobei jeweils das aktuelle Jahr automatisch eingesetzt wird.

Wem diese beiden Beispiele nicht reichen, kann zusätzlich einen Blick auf die mitgelieferten Beispielregeln werfen, die z.B. nützliche Dinge mit dem Download-Ordner tun, wie etwa alte Dateien rot zu markieren.

Eine weitere Spezialität von Hazel sind die Papierkorbsfunktionen:

Hazel 6

Beispielsweise können Dateien, die schon länger als eine Woche im Papierkorb rumliegen, automatisch gelöscht werden. Die Funktion “App Sweep” sucht beim Löschen von Apps automatisch die zugehörigen Dateien wie Einstellungen und Caches und bietet an, diese ebenfalls in den Papierkorb zu legen. Das erspart die Anschaffung eines separaten Uninstallers.

Alles in allem also ein sehr nützlicher Helfer, der auf keinem Mac fehlen sollte!

Bonus-Tipp: Der Besen auf der Seite “Info” ist anklickbar.

Dateien automatisch via Dropbox teilen

12 Mai 2012
12. Mai 2012

OS X besitzt dank Automator und AppleScript hervorragende Automatisierungsmöglichkeiten, die wir uns hier schon an der ein oder anderen Stelle zunutze gemacht haben. Kürzlich bin ich bei MacinTweak auf einen Workflow gestossen, der dies sehr sehr eindrucksvoll unterstreicht. Es wird eine Datei ausgewählt und folgender Arbeitsablauf automatisiert:

  • die Datei wird gepackt und bekommt einen zufälligen Namen
  • dann wird sie in den Public-Ordner unserer Dropbox kopiert
  • anschließend wird eine E-Mail mit dem Weblink zu dieser Datei vorbereitet
  • eine Hazel-Regel entfernt die Datei nach einer gewissen Zeit wieder aus unserer Dropbox

Die Umbenennung erfolgt deshalb, weil jeder, der den Dateinamen kennt oder errät, die Datei aus dem öffentlichen Ordner unserer Dropbox laden kann. Bei sensibleren Dateien ist ein längerer Zufallsname daher so etwas wie ein Kennwort. Die hier beschriebene Vorgehensweise ist äußerst praktisch, wenn man eine Datei nicht per E-Mail senden möchte, weil sie beispielsweise zu gross ist (viele Anbieter haben Limits von 10 oder 20 MB).

Wer noch kein Dropbox-Konto (ein wirklich empfehlenswerter Cloud-Speicherdienst, auf den viele iOS-Apps zugreifen können) hat, kann gerne diesen Empfehlungslink verwenden und bekommt dafür 500 MB zusätzlichen Speicherplatz.

Auf geht’s! Wir starten den Automator (liegt im Programme-Ordner) und legen einen neuen Dienst an:

dropshare1

Unser neuer Dienst empfängt Dateien und Ordner im Finder:

dropshare2

Er besteht aus zwei Arbeitsschritten, die im linken Teil des Automator-Fensters ausgewählt werden können. Schritt 1 ist „Archiv erstellen“ mit den folgenden Einstellungen:

  • Sichern unter: Derselbe Name wie die Eingabe
  • Ort: Derselbe Name wie die Eingabe

dropshare3

Schritt 2 lautet „AppleScript ausführen“. Das benötigte AppleScript finden wir bei MacinTweak. Es muss in die grosse Textbox kopiert werden:

dropshare4

Mit dem Hammer-Icon können – und sollten wir nach jeder Änderung – überprüfen, ob das Skript von der Syntax her korrekt ist.

Am Skript selber habe ich ein paar Änderungen vorgenommen.

In Zeile 6 habe ich eine Reihe von Sonderzeichen aus der Zeichenkette entfernt, damit die Dateinamen nicht zu exotisch werden:

set end of str to some item of “ABCDEFGHIJKLMNOPQRSTUVWXYZadbcdefghijklmnopqrstuvwxyz1234567890_-”

In Zeile 13 habe ich dem Dateinamen die Zeichenkette shared- vorangestellt, damit ich leichter sehen kann, welche Dateien im Public-Ordner aus diesem Workflow stammen und ich diese leichter mit Hazel (s.u.) erfassen kann:

set theNewName to (“shared-” & randString & “.zip”)

Wenige Zeilen darunter müssen wir den Pfad unseres Public-Ordners angeben (Doppelpunkt als Pfadtrenner, bitte den tatsächlichen Gegebenheiten auf dem jeweiligen Mac anpassen):

set dest_folder to folder “Desktop:Dropbox:Public” of home

Und wieder ein paar Zeilen tiefer die Webadresse unsers Public-Ordners. Individuell zu ändern ist hier die numerische Dropbox-ID:

set the theURL to (“http://dl.dropbox.com/u/123456789/” & my text2url(theNewName))

Die ID kann z.B. ermittelt werden, indem wir eine Datei in den Public-Ordner unserer Dropbox legen und im Kontextmenü auf „Dropbox > Öffentl. Link kopieren“ klicken. Dies befördert eine Webadresse in die Zwischenablage, welche die ID beinhaltet.

Anschliessend speichern wir den Dienst – z.B. unter dem Namen „in Dropbox teilen“.

Wenn alles korrekt gelaufen ist, haben wir jetzt im Kontextmenü einer Datei (im Finder) einen neuen Dienst:

dropshare5

Dieser sollte nun alle Aktionen wie beschrieben ausführen. Im Public-Ordner der Dropbox finden wir die gepackte Datei:

dropshare6

Gleichzeitig öffnet sich das Mail-Programm mit dem öffentlichen Link zu dieser Datei:

dropshare7

Schnell noch den Empfänger, einen Betreff sowie eine kurze Nachricht reinschreiben und schon ist die Datei geteilt.

Eine Hazel-Regel sorgt bei mir dafür, dass diese Dateien nach 14 Tagen wieder entfernt werden. Der Zeitraum kann natürlich beliebig gewählt werden:

dropshare8

Über Hazel – ein praktisches Helferlein für Ordner-bezogene Aktionen – müsste ich eigentlich auch mal einen Artikel schreiben, da mir das Tool eine ganze Reihe von Arbeiten abnimmt. Mal sehen, wann ich dazu komme. Nun wünsche ich erstmal viel Vergnügen beim Teilen von Dateien via Dropbox!

Version 7.1 - © 1995-2013 by Dr. Markus Jasinski - Impressum