Permalink

Amphetamine · Schlafkontrolle für macOS

Tools wie Caffeine oder KeepingYouAwake sind unter macOS sicherlich die bekanntesten Apps, sofern man seinen Mac vorm Einschlafen abhalten möchte.

In der Grundfunktion identisch aber mit wesentlich mehr Features kommt Amphetamine daher.

Die kostenlose und werbefreie App versteckt sich nach dem Starten in der macOS Menüleiste und lässt sich u.a. über Shortcuts steuern.

Neben den üblichen Zeitintervallen kann Amphetamine auch in gewisser Weise automatisiert werden. Hier spielen definierbare Trigger eine entscheidende Rolle, die aufgrund aktiver Apps, verbundener Netzwerke (WLAN, VPN) oder externer Geräte (USB, Bluetooth, Display, Kopfhörer, Stromversorgung) sowie einer bestimmten IP-Adresse des Macs automatisch auslösen können. Es lassen sich auch sehr detaillierte Zeitpläne erstellen. Dazu kann man Amphetamine auch über AppleScript steuern.

Die automatische Deaktivierung der App kann über das Erreichen eines bestimmten Akkustandes ausgelöst werden.

Amphetamine steht kostenlos im Mac App Store zum Herunterladen bereit und setzt zur Installation OS X 10.11 El Capitan oder neuer voraus.

[appbox appstore 937984704 simple]

Permalink

macOS Tipp: sips · scriptable image processing system

Vor knapp zwei Wochen hatte ich an dieser Stelle meinen Workflow für die Komprimierung von Bildern genauer vorgestellt.

Heute möchte ich einen Schritt zurückgehen. Denn bevor ich Bilder komprimiere, passe ich in der Regel deren Größe an. Hier gibt es natürlich unzählige Möglichkeiten. Wieder angefangen von Bildbearbeitungsprogrammen wie Pixelmator (Pro), Acorn oder Affinity Photo bis hin zu Apples Vorschau App.

Bildschirmfoto 2018-05-07 um 13.16.32-minishadow-fs8

Eine weitere macOS interne Lösung, die vielleicht nicht so bekannt ist, bietet sich mit sips an. Dabei handelt es sich um ein von macOS mitgeliefertes Kommandozeilentool, das in den man pages wie folgt beschrieben ist:

This tool is used to query or modify raster image files and ColorSync ICC profiles.  Its functionality can also be used through the „Image Events“ AppleScript suite.

Eines der Features dieses Tools betrifft eben die Manipulation der Bildgröße. Man benötigt im Prinzip nur ein einziges Terminalkommando und kann eine Vielzahl von Bildern (innerhalb eines Verzeichnisses) gleichzeitig in der Bildgröße anpassen. Dazu läuft der ganze Prozess extrem schnell ab.

sips -Z 1300 *.png

Bildschirmfoto 2018-05-07 um 13.40.12-minishadow-fs8

Der Schlüssel liegt in der –Z Option, bei der die maximale Bildgröße (in Pixeln) für Höhe oder Breite verändert wird. Das Seitenverhältnis vom Bild wird dabei nicht verändert.

-Z pixelsWH
--resampleHeightWidthMax pixelsWH
Resample image so height and width aren't greater than specified size.

Dazu bietet sips etliche weitere Optionen. So kann man Bilder beispielsweise zuschneiden, rotieren, spiegeln, auffüllen (padding), in ein anderes Format konvertieren oder das Farbprofil anpassen.

Letztere sind auf dem Mac unter /System/Library/ColorSync/Profiles/ abgelegt. Über die –out Option hält man sips zudem vom Überschreiben der Originaldatei ab.

sips -m '/System/Library/ColorSync/Profiles/sRGB Profile.icc' bild_cmyk.jpg --out bild_rgb.jpg

Diese ganzen Kommandos bzw. Aufgaben lassen sich natürlich auch automatisieren. Dabei wird die komplette sips-Architektur per AppleScript gesteuert.

Beispiel:

Man markiert zunächst eine oder mehrere Bilder im Finder. Jetzt startet man das Skript, das die maximale Bildgröße (in Pixeln) für die Höhe bzw. Breite per Dialog abfragt. Der Standardwert liegt bei 1.300 Pixeln.

Anschließend wird ein (Ziel-)Verzeichnis mit dem eingegebenen Pixelwert erstellt, in dem schlussendlich die mit der –Z (Bildgröße) und -m Option (Farbprofil) bearbeitete Bilddatei landet.

Bildschirmfoto 2018-05-07 um 15.57.69-minishadow-fs8

Ich selbst nutze dieses Skript natürlich über Keyboard Maestro. Man kann es aber auch über den Automator steuern.

Als Vorlage dafür diente übrigens ein etwas älterer Artikel bei macgrunt. In dem dort gezeigten Skript wird explizit zwischen Breite und Höhe des Bildes unterschieden, was für meine Belange aber nicht von Bedeutung ist. Daher meine etwas vereinfachte Version.

(inspired by)

Permalink

Review: Keyboard Maestro 8 · Automatisierung unter macOS (Gewinnspiel inside)

Geht es um das Thema automatisierte Arbeitsabläufe am Mac, führt bei mir kein Weg an Keyboard Maestro vorbei.

Diese oft extrem unterschätze Software war in den letzten Jahren immer mal wieder Bestandteil unserer Artikel, so dass auch der Workflow-Laie das Potential der App vielleicht schon erahnt hat. Heute möchte ich mit Keyboard Maestro 8 die neuste Version genauer vorstellen.

Grundlagen

Bei Keyboard Maestro handelt es sich um ein Workflow-Automatisierungstool, das im Grunde genommen Apples Automator ähnelt. So kann man auch ohne große Programmiersprachenkenntnisse Workflows erstellen, die das tägliche Arbeiten mit dem Mac erleichtern.

Die Fähigkeiten von Keyboard Maestro gehen dabei weit über die des Automators hinaus. Über eine Kombination aus Aktionen und Triggern lassen sich Macros erstellen, die den eigentlichen Workflow darstellen. Der Komplexität sind kaum Grenzen gesetzt. Für einen Einstieg empfehle ich eine Suche hier im Blog bzw. direkt den Blick ins Wiki oder den Supportbereich des Entwicklers. Auch der Twitteraccount des Entwicklers ist eine exzellente Quelle für neue Macros.

Was ist neu?

Das umfangreiche Changelog zeigt für KM8 über 100 neue Features und Bugfixes an. Ich werde mich daher für diese Review wieder ausschließlich auf die wichtigsten Neuerungen der neuen Version konzentrieren.

Neben einem neuen Assistance System, das bei der Fehlersuche innerhalb von Makros hilfreich ist, sind vor allem die neuen Aktionen und Trigger interessant.

Mit diesen neuen Features muss man in der Regel erst mal etwas experimentieren, um die nun neu geschaffenen Möglichkeiten gänzlich zu begreifen. Es kommt auch gar nicht mal so selten vor, dass neue Aktionen und Trigger bestehende Makros obsolet machen oder sie mit Blick auf die Komplexität erheblich vereinfachen.

Aktion: Send SMS / Send iMessage

Diese beiden neuen Aktionen nutzen Apples Nachrichten App und erlauben somit die Kommunikation mit der Außenwelt.

Wenn also irgendein Macro unsichtbar im Hintergrund läuft, kann man sich nun per Notifications (SMS oder iMessage) auf den Mac oder das Smartphone Updates senden lassen. Man muss einfach nur eine E-Mail Adresse oder Telefonnummer (bzw. wählt einen Empfänger aus den Kontakten) samt Nachrichtentext eingeben. Der Rest läuft automatisch.

Die KM Doku weist allerdings darauf hin, dass die SMS u.U. den falschen Empfänger erreichen kann. Daher sollte man auf sensitive Inhalte besser verzichten.

Aktion: Prompt With List

Macros waren bisher nicht wirklich interaktiv. Man könnte sie zwar mit Text oder Dateien füllen, diese Daten aber nicht on-the-fly definieren.

Mit der neuen Prompt With List Aktion hat man basierend auf der Zwischenablage, einer Variable, Datei oder Text Auswahlmöglichkeiten und kann den Input von Macros vor dem eigentlichen Start anpassen.

Touch Bar Support

Die Unterstützung der Touch Bar gehört, trotz der nach wie vor sehr stiefmütterlichen Behandlung durch Apple, zum guten Ton einer jeden App. So natürlich auch bei Keyboard Maestro.

Dazu kann man nun über die neue Aktion Get Touch Bar Selection verschiedene Knöpfe auf der Touch Bar abbilden und deren Ergebnis auf verschiedene Arten (neues Fenster, Notification, gespeichert als Variable oder in der Zwischenablage…) ausgeben.

Darüber hinaus kann man jetzt über die Aktion Show Palette of Macros (neben der separaten Palette) den Namen ausgewählter Marcos auf der Touch Bar anzeigen und die Marcos auch von dort starten. Gleiches gilt für Macros, die per Conflict Palette gestartet werden.

Trigger: Cron, Gesture, Idle, Audio Output Changed, Remote, Dragged File

Neben den neuen Aktionen, hat sich natürlich auch etwas bei den Triggern getan.

Über das Cron Format kann man Macros nun zeitlich basiert (Uhrzeit, Tag, Woche oder Jahr) abfahren lassen. Der Gesture Trigger macht gleiches auf Basis einer Geste auf dem Trackpad oder der Maus. Die Idle und Audio Output Changed Trigger sind selbsterklärend. Interessant ist noch der neue Remote Trigger, über den man Macros entfernt über einen Trigger Code per Webseite steuern kann.

 

Mit Keyboard Maestro 8.2 kam noch ein erwähnenswerter Dragged File Trigger hinzu, der u.U. das anfangs schon erwähnte Umbauen bestehender Macros erforderlich macht.

Möchte man beispielsweise den Pfad einer im Finder markierten Datei abrufen, kann folgendes Macro zum Ziel führen:

Gleiches erledigt das jetzt folgende Macro im Zusammenspiel mit dem neuen Dragged File Trigger.

Der Unterschied zur vorherigen Version besteht halt darin, dass man die Datei, von der man den Pfad haben möchte, auf das Marco innerhalb einer Palette “droppen” muss.

Applications Palette

Ebenfalls mit Keyboard Maestro 8.2 kam die Applications Palette hinzu.

Dieses Feature wird entweder über die Einstellungen oder das Menüleisten Icon von KM8 aktiviert und zeigt alle gerade laufenden Apps an.

Wie alle Paletten in KM kann man auch diese über den Theme Editor optisch anpassen oder spezielle Apps von der Anzeige ausschließen.

Zieht man jetzt Dateien oder Ordner auf eines der App-Icons in der Palette, werden diese Daten mit dieser App geöffnet bzw. verarbeitet. Mit einen Rechtsklick können über ein Kontextmenü weitere Aktionen ausgeführt werden.

Außerdem kann man über die Applications Palette mit Klick auf eines der Icons direkt zur App springen (quasi das klassische Cmd+Tab Feature von macOS).

Sonstiges

Bei KM8 gab es zudem sehr viele kleinere Anpassungen im Macro Editor, die man erst beim genauen Hinschauen oder Durchlesen der Release Notes wahrnimmt.

So bietet der Editor nun die volle Unterstützung von AppleScript.

Ganz nett ist auch das “draggen” von Dateien in Macros. Daraufhin werden nämlich automatisch zur Datei passende Aktionen erstellt. Zieht man beispielsweise eine App in ein Macro, folgt die Aktion Activate Application. Zieht man ein Skript hinein, folgt die Aktion Execute Script u.s.w.

Abschließend noch ein kleines Video vom Entwickler, das Keyboard Maestro 8 in bewegten Bildern vorstellt.

youtube/watch?v=Qt-swFofjpY

Preise und Verfügbarkeit

Keyboard Maestro 8 wird ausschließlich über die Homepage von Entwickler Stairways Software für derzeit knapp 36 Euro (von aktuellen Dollarkurs abhängig) verkauft. Ein Upgrade wird nach Prüfung der vorhandenen Lizenz für 25 Euro angeboten.

Skeptiker greifen vor dem Kauf zur kostenlosen Testversion. Zur Installation wird OS X 10.10 Yosemite oder neuer vorausgesetzt.

-> http://www.keyboardmaestro.com

tl;dr

Ich sagte ja bereits im ersten Satz dieser Review, dass Keyboard Maestro für mich bei automatisierten Arbeitsabläufen unverzichtbar ist. Ich kann gar nicht genau sagen, für was ich die App alles nutze…

Mit Version 8 wurde das Tool mit neuen Triggern und Aktionen sowie vielerlei Anpassungen beim Editor weiter verfeinert. Dazu kamen Anpassungen bei der Zwischenablagefunktion und ein erweiterter MIDI-Support, um auch mal Dinge zu nennen, die in der Review noch nicht erwähnt wurden.

Insgesamt kann ich Bestandskunden das Upgrade auf Version 8 bedenkenlos empfehlen. Neukunden werden anfangs wieder etwas Einarbeitungszeit mit dem Tool benötigen. Keyboard Maestro ist halt sehr speziell. Hinzu kommt, dass jeder andere Workflows hat, die sich mit dem Tool automatisieren lassen.

[do action=“aguwertung“ wert=“10″/]

Gewinnspiel

Auch dieses Mal hat uns Stairways Software wieder drei Lizenzen von Keyboard Maestro für eine Verlosung zur Verfügung gestellt.

Zur Teilnahme kommt erneut Gleam zum Einsatz, bei dem die folgenden optionalen und gleichwertigen Lose enthalten sind:

  • Frage beantworten
  • aptgetupdateDE bei Twitter folgen
  • Tweet zur Review bei Twitter retweeten
  • aptgetupdateDE bei Facebook besuchen
  • aptgetupdateDE bei Google+ besuchen

Die Auslosung findet kommenden Montag, den 23.04.2018, statt. Viel Glück!

Permalink

Howto: macOS Apps mit Keyboard Maestro oder AppleScript aktivieren/pausieren/beenden

Heute möchte ich mal wieder einen kleinen Workflow verlinken, der dieser Tage von Alexander veröffentlicht wurde.

Es geht im Grunde genommen um das an einem bestimmten Wochentag mit vorgegebener Uhrzeit selbstständige Starten von Apps. Dazu kann man die Dauer der Aktivierung bis zum automatischen Beenden der App festlegen.

Als Tools kommen die alles erschlagende Allzweckwaffe Keyboard Maestro und/oder ein AppleScript zum Einsatz.

Viel Spaß beim Nachbauen 😎

youtube/watch?v=g_YGj5GtGRs

Abschließend noch das passende AppleScript, das für die jeweilige App natürlich angepasst werden muss.

Dieses Beispiel bezieht sich ausschließlich auf MailMate, meinen unter macOS bevorzugten Mailclient.

tell application "MailMate"
 launch
 activate
 delay 3
  tell application "System Events"
   activate
   set theTime to text returned of (display dialog "Wie lange soll MailMate aktiviert bleiben?" with title 
                                    "MailMate Aktivierung" default answer "" buttons {"Cancel", "Start"} default button 2)
   delay theTime * 60
   tell application "MailMate" to quit
  end tell
end tell
Permalink

Pliim · Präsentationen und Vorträge störungsfrei auf dem Mac halten

Hin und wieder kommt es vor, dass ich mit meinem MacBook einen kleinen Vortrag halte.

Für einen professionellen Auftritt sollten natürlich sämtliche persönlichen Einstellungen wie Hintergrundbild, Benachrichtigungen, Desktop Icons oder Sounds auf ein Minimum zurückgefahren werden. Um sich jetzt nicht jedes Mal unzählige Minuten durch die Systemeinstellungen des Macs zu wühlen, gibt es Pliim.

Pliim-macOS-aguDE

Diese quelloffene und daher auch kostenlose App findet man nach dem Starten in der macOS Menüleiste. Von dort kann man nun relativ einfach einzelne Funktionen deaktivieren bzw. auch wieder aktivieren.

  • Desktop Icons verstecken
  • Benachrichtigungen deaktivieren
  • Aktive Apps verstecken

Die Systemsounds bleiben leider (noch) erhalten. Für zukünftige Versionen der App ist aber schon das Deaktivieren von Night Shift, das Verhindern des automatischen Ruhezustandes, das Austauschen des Hintergrundbildes oder auch das automatische Verstecken des Docks angekündigt. Auch eine Version für Linux befindet sich in der Entwicklung.

Pliim basiert auf dem Electron Framework, das quasi eine komplette Instanz des Chrome Browsers beinhaltet. Daher ist die App mit knapp 150 MB auch sehr groß. Wer das nicht möchte, kann sich an der Lite-Version von Pliim versuchen, die im Grunde genommen nur aus zwei AppleScripten besteht. Zum Download geht es hier entlang.

Bei GitHub findet man auch den Quellcode für die App. Zur Installation wird OS X 10.11 El Capitan oder höher vorausgesetzt.

-> https://zehfernandes.github.io/pliim

Permalink

Howto: Per Shortcut in macOS Apps einloggen (mit Hilfe von 1Password und Keyboard Maestro)

Trotz aller Kontroversen bin ich nach wie vor ein sehr großer Fan des Passwortmanagers 1Password.

Vor etwas mehr als zwei Jahren hatte ich auf die verfügbaren Tastaturkürzel der App aufmerksam gemacht und gezeigt, wie man sich über 1Password mini relativ einfach in Webseiten und Apps einloggen kann.

Bildschirmfoto 2017-08-25 um 11.02.06-minishadow

Während das Einloggen auf Webseiten (meistens) mit einem nur einem Klick oder Sprachbefehl erledigt ist, sind zum Einloggen in eine App schon mehrere Schritte notwendig.

Um diesen Workflow abzukürzen, hatte unser geschätzter Kollege Alexander vor gut zwei Wochen ein erstes Video-Tutorial erstellt, in dem er erklärt, wie man sich mit Hilfe von Keyboard Maestro und nur einem Mausklick, einem Shortcut oder auch nur durch das Starten einer App in Accounts einloggen kann.

Damit dieses erste Tutorial problemlos funktioniert, muss 1Password mini allerdings ständig entsperrt sein. Ist es das nicht, was bei vielen Nutzern der Standardfall sein sollte, funktioniert das Makro nicht und man muss sich etwas Neues einfallen lassen. Das hat Alexander auch getan und mit Hilfe des Keyboard Maestro Forums eine Lösung gefunden, die auf nur einem einzigen AppleScript basiert 😲

use AppleScript version "2.4" -- Yosemite (10.10) or later
use framework "Foundation"
use scripting additions

on run
  set searchTerm to "icloud"

  tell application "System Events"
    set preClip to (the clipboard) as text
    set elements to every UI element whose creator type is "1Ph*"
    if elements is {} then
      log "1Password Mini is not running"
      return false
    end if
    set mini to (first item of elements)
    set miniName to short name of mini
    log miniName & " is running as " & name of mini
    set isLocked to my isOPMiniLocked(miniName)
    open location "x-onepassword-helper://search/" & searchTerm
    if isLocked then
      if not (my waitForUnlock(miniName, 10)) then
        return false
      end if
    end if
    tell its UI element (name of mini)
      set frontmost to true
      set i to 0
      repeat
        try
          if (focused of text field 1 of window 1) is true then
            tell text field 1 of window 1
              set value to searchTerm
              perform action "AXConfirm"
            end tell
            delay 1.0
            keystroke "c" using {command down, shift down}
            delay 0.5
            set thePass to (the clipboard) as text
            exit repeat
          end if
        end try
        delay 0.1
        set i to i + 1
        if i > 100 then
          return false
        end if
      end repeat
  
      tell application "App Store" to activate
      delay 0.5
      keystroke thePass
      key code 36
      set the clipboard to preClip
    end tell
  end tell
end run

on isOPMiniLocked(miniName)
  tell application "System Events"
    tell application process miniName
      perform action "AXPress" of menu bar item 1 of menu bar 1
      set isLocked to (subrole of text field 1 of window 1 is "AXSecureTextField")
      delay 0.1
      key code 53 -- Escape key to close 1PMini window
      if isLocked then
        log "1Password Mini is locked"
        return true
      end if
      log "1Password Mini is unlocked"
      return false
    end tell
  end tell
end isOPMiniLocked

on waitForUnlock(pProcessName, pMaxTimeSec)
  local startTime, elapTime, errMsg
  set startTime to current application's NSDate's |date|()
  log startTime
  tell application "System Events"
    repeat
      set elapTime to (-(round ((startTime's timeIntervalSinceNow()) * 100)) / 100.0)
      if (elapTime > pMaxTimeSec) then
        set errMsg to "Max Time of " & pMaxTimeSec & " seconds exceeded waiting for " & pProcessName
        log errMsg
        return false
      end if
      try
        set roleMode to (subrole of text field 1 of window 1) of (application process pProcessName)
        if roleMode is "AXSearchField" then
          return true
        end if
      end try
      delay 0.1
    end repeat
  end tell
end waitForUnlock

Ohne jetzt in die Tiefen des Codes einzusteigen, muss gesagt werden, dass dieses Skript nur bedingt universell verwendbar ist. Je nachdem in welche App man sich einloggen möchte, muss das AppleScript an zwei Stellen angepasst werden.

Zum einen direkt am Anfang bei der Suche nach dem in 1Password hinterlegten Login. Zum anderen bei der App, für die ein Login benötigt wird.

KM_Macro_Screenshot_2017-09-08 um 09.52.01_1300px

Ist nun alles gut?! Mitnichten, denn für Leute wie mich, die eines dieser neumodischen MacBook Pro mit Touch ID verwenden, funktioniert das AppleScript nicht; zumindest wenn man Touch ID zum Entsperren von 1Password verwendet.

Aber auch hier kamen Alexander und ich nach einigen Überlegungen zum Ziel: Keyboard Maestro hat nämlich den Vorteil, dass man Bedingungen an am Bildschirm angezeigte Fenster bzw. Grafiken knüpfen kann.

Somit ist das vorherige AppleScript jetzt in zwei Teile zerhackt, funktioniert aber auch mit Touch ID 😎

KM_Macro_Screenshot_2017-09-08 um 09.51.21_1300px 2

Auch hier gilt wieder: das Makro ist nicht universell verwendbar, sondern muss für jeden App-Login an drei Stellen angepasst werden. Zu den aus dem ersten AppleScript bekannten Stellen kommt jetzt noch eine Grafik hinzu, die den gefundenen Login in 1Password mini identifiziert.

Zum finalen Anzeigen bzw. Nutzen der verschiedenen Logins empfiehlt es sich auf die von Keyboard Maestro zur Verfügung gestellten globalen Makro Paletten zu setzen. Hier genügt dann im Endeffekt ein Mausklick und man ist in App X oder App Y eingeloggt.

Bildschirmfoto 2017-09-08 um 11.19.40

Um jetzt das ganze Prozedere besser nachverfolgen und auch live in Aktion sehen zu können, hatte Alexander vor ein paar Tagen ein zweites Video erstellt, das das erste Tutorial ergänzt bzw. aktualisiert.

Viel Spaß beim Anschauen 📼

youtube/watch?v=_WVz_Oq4sAE

Die beiden hier vorgestellten Makros können übrigens hier heruntergeladen werden.

Permalink

Review: Archive Assistant · Datei-Archivierung mittels AppleScript

Vor ein paar Wochen hatte ich mit BetterZip meinen neuen Favoriten für die Datei-Archivierung unter macOS vorgestellt.

Wesentlich nerdiger aber nicht weniger interessant ist der Archive Assistant.

01-Bildschirmfoto 2017-03-29 um 16.45.02-minishadow

Dabei handelt es sich um ein (AppleScript-)Skript, das auf recht einfache Art und Weise beim Erstellen von Archiven und Disk Images behilflich ist. Das Entpacken von Archiven beherrscht das Skript dahingegen nicht.

Installation des Skripts

Möchte man das Skript über das Menüleisten-Icon von Apples Skript-Editor starten, muss man es nach ~/Library/Scripts kopieren.

Dazu gibt es natürlich die Möglichkeit das Skript mit Schnellstartern wie LaunchBar oder Alfred sowie meiner allzeit beliebten Allzweckwaffe Keyboard Maestro zu starten. Hier ist der Speicherort des Skripts dann wieder egal, da innerhalb dieser Apps der Pfad angegeben wird.

02-Bildschirmfoto 2017-03-29 um 16.45.04

Was kann das Skript?

Wie schon geschrieben, geht es um das Erstellen von Dateiarchiven.

Dabei bleiben die Mac-typischen Metadaten (spotlight comments, openmeta tags, “resource fork”, extended attribute, ACLs) vollständig erhalten. Es gibt aber auch zwei Sonderfälle, die auf das Speichern von Metadaten verzichten und sich somit vorzüglich für das Versenden von Archiven an Windows-Nutzer eignen.

Dazu unterstützt das Skript verschiedene Dateiarchiv-Formate, wählbare Komprimierungsstufen, Archivverschlüsselung per AES und vieles mehr. Detailliert lässt sich folgende Aufstellung festhalten:

Folgende Archive/Images können erstellt werden:

  • tar, unkomprimiert
  • tar, gzip-komprimiert (tar.gz)
  • tar, bzip2-komprimiert (tar.bz2)
  • tar, lzma2-komprimiert (tar.xz)
  • xar, unkomprimiert
  • xar, gzip-komprimiert
  • xar, bzip2-komprimiert
  • zip (zwei Varianten)
  • 7z (lzma2)
  • dmg, read/write
  • dmg, read-only
  • dmg, zlib-komprimiert
  • dmg, bzip2-komprimiert
  • dmg, Sparse-Image
  • dmg, Sparse-Bundle

…und weitere Features:

  • Dateien zu tar-, cpio-, pax-, zip-, 7z-Archiven hinzufügen.
  • Dateien zu Read-only- oder komprimierten dmg via Shadow-File hinzufügen („shadow mount“).
  • Konvertieren zwischen verschiedenen dmg-Formaten.
  • Einstellbare dmg-Größe.
  • Zip, 7z und alle dmg-Typen optional AES-verschlüsselt.
  • Ändern des Passworts eines dmg.
  • Wählbare Komprimierungsstufen für Archive und dmgs.
  • Detaillierte Settings für lzma2-Komprimierung (xz und 7z), einschließlich Dictionary-Size, Word-Size, Multi-/Singlethreading, Solid/Non-solid/Solid by Filetype.
  • Möglichkeit, die fertig komponierte Befehlszeile ins Terminal zu kopieren, für eventuelle weitere Ad-hoc-Einstellungen.

Benutzung des Skripts

Erstellen von Archiven

In einem ersten Schritt markiert man in Apples Finder eine oder mehrere Dateien und/oder Verzeichnisse und startet das Skript.

03-Bildschirmfoto 2017-03-30 um 21.43.55_1300px

Anschließend wählt man den Typ des Archives aus, woraufhin man in die Archiveinstellungen gelangt. Mit gedrückter Cmd-Taste können hier auch mehrere Optionen gewählt werden, die dann für das wiederholte Verwenden für den Archivtyp gespeichert sind.

Danach vergibt man ggf. ein Passwort und wählt das Zielverzeichnis sowie den Namen des Archives aus. Das Skript verrichtet nun seine Arbeit im Hintergrund. Nachdem das Archiv erstellt ist, wird ein kleiner Statusbericht angezeigt.

04-Bildschirmfoto 2017-03-30 um 21.45.55_1300px

Die Archiveinstellungen sind übrigens kontextsensitiv und zeigen nur die Optionen an, die für die ausgewählte Datei sinnvoll sind.

Für die unterstützten Archivtypen tar, xar, 7z, zip und die verschiedenen Disk Images ergeben sich beispielshaft folgende unterschiedliche Options-Untermenüs:

05-Bildschirmfoto 2017-04-22 um 23.38.41_1300px

Normaler Modus vs. Terminal Modus

Ich sagte ja bereits, dass das Skript im normalen Modus im Hintergrund läuft und nach Beendigung des Jobs einen kleinen Statusbericht anzeigt.

Darüber hinaus kann man die Kommandos auch im Terminal ausführen. Das Skript unterschiedet hier zwischen Run in Terminal und Paste into Terminal.

06-Bildschirmfoto 2017-04-24 um 23.56.06-minishadow_1300px

Während im ersten Fall alle Befehle mit maximaler Geschwätzigkeit im Terminal ausgeführt werden, wird im zweiten Fall nur das Kommando mit allen im Menü gewählten Optionen ins Terminal kopiert aber nicht ausgeführt. Das hat vor allem dann Charme, wenn man in speziellen Fällen an Details des Kommandos schrauben möchte, die über das Menü des Skripts nicht einstellbar sind.

Daten zum Archiv hinzufügen

Für dieses Vorhaben gibt es mit -> Add to Existing Archive einen speziellen Punkt im Startmenü des Archive Assistant.

Hat man eine oder mehrere Dateien bzw. Verzeichnisse markiert und im Skriptmenü diesen speziellen Punkt gestartet, muss man zunächst einmal das bestehende Archiv auswählen, zu dem Daten hinzugefügt werden sollen.

07-Bildschirmfoto 2017-04-24 um 23.24.22_1300px

Anschießend landet man in den normalen (kontextsensitiven) Archiveinstellungen, die man schon vom Erstellen von Archiven kennt.

Das Hinzufügen von Daten funktioniert per Skript übrigens nur bei unkomprimierten Unix-typischen Archiven wie tar, cpio oder pax sowie zip- und 7z-Archiven. Möchte man Daten zu einer dmg-Datei hinzufügen, kann das einfach über den Finder per drag-and-drop in das eingehängte Image erledigt werden.

Disk Images

Auch wenn Disk Images streng genommen keine Archive sind, kann man sie unter macOS wunderbar als solche verwenden. Genau deshalb sind sie auch Teil dieses Skripts.

Das Erstellen von dmg-Dateien gleicht im Prinzip dem Erstellen von normalen Archiven. Die Optionen sind hier formatbedingt allerdings etwas limitiert. Zudem muss man ggf. die Größe des Disk Images angeben.

08-Bildschirmfoto 2017-04-25 um 10.25.14_1300px

Wesentlich interessanter sind dahingegen die dmg-Actions, die auf bestehende Disk Images angewendet werden können.

So kann man beispielsweise eine Konvertierung zwischen den verschiedenen dmg-Formaten vornehmen sowie die Größe oder bei verschlüsselten Disk Images das Passwort nachträglich ändern.

09-Bildschirmfoto 2017-04-24 um 23.46.54_1300px

Auch vergleichsweise selten verwendete dmg-Features wie das Shadow File werden vom Skript unterstützt.

Mit diese Option, des von macOS vorinstallierten Kommandozeilentools hdiutil, kann man Dateien zu read-only oder komprimierten Disk Images per Shadow Mount hinzufügen.

Use a shadow file in conjunction with the data in the image. This option prevents modification of the original image and allows read-only images to be attached read/write. When blocks are being read from the image, blocks present in the shadow file override blocks in the base image. All data written to the attached device will be redirected to the shadow file. If not specified, -shadow defaults to image.shadow. If the shadow file does not exist, it is created. Verbs accepting -shadow also accept -cacert and -insecurehttp.

Technisches

Das Skript ist mit OS X Yosemite oder höher kompatibel und nutzt, neben dem schon erwähnten hdiutil, die ebenfalls von macOS mitgelieferten Tools tar, pax, xar, ditto und basename/dirname.

Darüber hinaus ist p7zip, ein Port von 7-zip, im Script-Bundle enthalten. Dieses Tool wird nicht nur für 7z-Archive, sondern auch für gz, bz2, xz und teilweise zip verwendet, da es multi-threaded schneller und effizienter arbeitet als die entsprechenden Unixtools.

Sonstiges

Trotzdem diese Review des Archive Assistant schon vergleichsweise lang ist, habe ich die Funktionalität des Skriptes längst nicht umfassend dargestellt. Daher empfehle ich jedem Interessenten sich das dem Download beiliegende Handbuch genauer durchzulesen.

Dort hat Tom, der verantwortliche Entwickler des Archive Assistant, auf 17 Seiten jeden Funktion und Option genau erklärt. Auch zu den einzelnen Archivtypen, sowie dem Handling der Metadaten gibt es weiterführende Informationen.

-> http://dflect.net/archive-assistant