Permalink

macOS Tipp: Wie lange läuft die App eigentlich schon?

Vor ca. einem Jahr hatte ich mit Timing, das mittlerweile auch einen Sync über mehrere Macs anbietet, eine automatische Zeiterfassung ausführlicher vorgestellt.

Wem diese Lösung zu groß ist, kann aber dennoch für einzelne Apps mittels Terminal die aktuelle Betriebszeit herausfinden.

Zunächst benötigt man die Prozess ID (PID), die entweder über die macOS Aktivitätsanzeige oder mit folgendem Befehl über das Terminal herausgefunden werden kann:

ps ax | grep '[A]ppname'

Im Output ist die erste Zahl die PID.
Die eckigen Klammern beim Appnamen sind notwendig, damit sich grep nicht selbst findet. Den Unterschied sieht man weiter unten im Screenshot.

Ist die PID identifiziert, wird die Prozess Uptime über folgendes Kommando angezeigt:

ps -o etime= -p "PID"

Das Ausgabeformat ist mit dd-hh:mm:ss definiert.
Für mein Beispiel MailMate sind es demnach 3 Tage und eine knappe halbe Stunde.

Möchte man darüber hinaus die exakte Startzeit des Prozesses wissen, muss das Terminalkommando etwas erweitert werden:

ps -o lstart= -o etime= -p "PID"

Hier wird dann zusätzlich der Wochentag sowie das Datum inkl. Uhrzeit angezeigt.

(via)

Permalink

macOS Tipp: EFI Firmware vom Mac auf Integrität prüfen

Als eine der besser versteckten Änderungen in macOS 10.13 High Sierra kann man die auf seinem Mac installierte EFI Firmware auf Integrität prüfen.

Das Tool namens eficheck wird auf allen mit High Sierra versorgten Macs einmal in der Woche automatisch im Hintergrund ausgeführt. Dabei wird die Firmware gegen eine von Apple verwaltete “allowlist” geprüft.

Bildschirmfoto 2018-06-14 um 15.22.00-minishadow-fs8

Stimmen die kalkulierten Hashes überein, passiert nichts weiter. Gibt es ein Problem, kann man die Daten zur Prüfung direkt an Apple senden.

Die Allow List, gegen die das eficheck Tool die Firmware prüft, liegt übrigens lokal auf dem Mac und wird mit jedem Update von macOS (High Sierra) aktualisiert. Es muss also nicht zwangsläufig eine Verbindung zum Internet bestehen.

Von diesen automatisch im Hintergrund ablaufenden Checks abgesehenen, kann man das Tool auch per Hand über das Terminal starten. Es ist zugegebenermaßen sehr versteckt. Von den zur Verfügung stehenden Startoptionen ist –integrity-check wohl am wichtigsten.

/usr/libexec/firmwarecheckers/eficheck/eficheck --integrity-check

In diesem Zusammenhang sei auch noch mal an das Setzen eines Firmware Passwortes erinnert, damit man die Gefahr eines Angriffs von vornherein minimiert.

(via)

Permalink

Neofetch · System Informations Tool für das Terminal

Wer schon immer einmal Informationen zum Betriebssystem, zur Desktop Umgebung, Themes, Icons u.v.m. im Terminal angezeigt bekommen möchte, sollte sich neofetch genauer ansehen.

Dieses kostenlose System Informations Tool kann per default auch Daten zum Kernel, zur Uptime oder verwendeten Hardware wie CPU, GPU oder RAM anzeigen lassen.

Wem das nicht genügt, kann das Ganze noch per eigener Konfigurationsdatei individuell anpassen… CPU Temperatur, IP Adresse, Festplatteninfos, Wetter, derzeit abgespielter Song u.v.m.

Die Möglichkeiten sind hier unglaublich vielfältig. Man muss sich halt nur ins Wiki einlesen 😉

brew install neofetch

Die Installation von neofetch kann über Homebrew erfolgen.

Neben macOS wird das Tool auch für diverse Linux Distributionen, BSD, Solaris, Windows, Android und iOS (Cydia) angeboten.

-> https://github.com/dylanaraps/neofetch

Permalink

macOS 10.13 High Sierra Installer per Skript herunterladen (ohne Mac App Store)

Lange Zeit waren die OS X Installer exklusiv im Mac App Store verfügbar. Mit macOS 10.12 Sierra hat Apple dieser Exklusivität ein Ende gesetzt. Seitdem sind auch die macOS Installationsvolumen (inkl. der Beta-Versionen) im regulären Software Update Katalog enthalten und können über Apple Kommandozeilentool softwareupdate heruntergeladen werden.

Genau dieses Feature hat sich Greg Neagle zu Nutze gemacht und ein umfangreiches Python Skript namens installinstallmacos.py geschrieben.

Die verfügbaren Optionen dieses Skripts, für deren Ausführung Admin-Rechte benötigt werden, werden über folgendes Terminalkommando angezeigt:

sudo /pfad/zu/installinstallmacos.py -h

Per default, also wenn man keine der verfügbaren Optionen nutzt, wird der im Skript definierte Software Update Katalog genutzt. Am 13.05.2018 standen so folgende macOS Versionen zum Download zur Verfügung: (Falls es Unklarheiten bei der Produkt- und Buildversion gibt, einfach hier klicken.)

sudo /pfad/zu/installinstallmacos.py

In diesem Beispiel habe ich mich, fernab der angezeigten Betas, für die letzte verfügbare Version von macOS 10.13 High Sierra (Option 3) entschieden.

Der Download wiegt etwas mehr als 5GB und dauert nun dementsprechend lange.

Das fertig erstellte Disk Image landet im Arbeitsverzeichnis.

Sobald man dieses Image mountet, findet man die macOS Installer App im Applications Verzeichnis.

Nebenbei sei erwähnt, dass während der Laufzeit des Skriptes im Arbeitsverzeichnis noch ein content-Verzeichnis angelegt wird. Dieses Verzeichnis gehört dem root und es beinhaltet alle Katalogdaten und Downloadkomponenten, die zur Erstellung des Disk Images benötigt werden. Ist das Image erstellt, kann dieses Verzeichnis demnach gelöscht werden.

Über die zusätzlichen Optionen wie –compress bzw. –workdir kann man ein komprimiertes bzw. besser handhabbares Disk Image (mit dem Installer auf oberster Ebene) erstellen bzw. das Arbeitsverzeichnis anpassen. Mit der Option –catalogurl kann man sogar einen anderen als im Skript verwendeten Software Katalog nutzen.

Der Standard Software Katalog für macOS High Sierra ist übrigens dieser:

https://swscan.apple.com/content/catalogs/others/index-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog

Schlussendlich kann man also festhalten, dass zum Herunterladen von macOS (High Sierra) nicht unbedingt der Mac App Store von Nöten ist.

Das hier vorgestellte Skript kann bei GitHub heruntergeladen werden.

-> https://github.com/macadmin-scripts/installinstallmacos.py

(via)

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

Marta · Dual-Pane Dateimanager für den Mac lädt zur Beta ein

Bei Marta handelt es sich auf den ersten Blick um einen sehr schlichten Dual-Pane Dateimanager für macOS, der durch sein optisches Auftreten etwas an den klassischen Norton Commander erinnert.

Seit ein paar Tagen ist die App als Beta verfügbar und liefert auf den zweiten Blick einige sehr spannende Features.

Marta lässt sich beispielsweise komplett über die Tastatur bedienen. Sämtliche Tastenkombinationen kann man individuell anpassen.

Dazu gibt es Themes (von hell bis dunkel und sogar ein blaues Theme), Tabs, ein Action Panel für z.B. schnelle Dateioperationen, verschiedene Display Modes (Tabelle oder mehrspaltig), Quick Search, “queued” Dateioperationen, ein integriertes Terminal, favorisierte Verzeichnisse oder Pinned Items für den Schnellzugriff sowie die Unterstützung zahlreicher Dateiarchive.

Interessant ist noch eine Feature namens DirStat, mit dem man beispielsweise große Dateien identifizieren kann.

Über sogenannte Gadgets lassen sich nutzerbasierte Aktionen erstellen, die auf externe Tools zurückgreifen. Damit ist im Prinzip eine Plugin-Struktur geschaffen ohne extra ein Plugin programmieren zu müssen. Plugins im eigentlichen Sinne werden natürlich auch unterstützt.

Die ganze Konfiguration von Marta erfolgt übrigens ohne jede GUI in textbasierten JSON-Dateien. Hilfreich ist hier die vom Entwickler zur Verfügung gestellte ausführliche (Online-)Dokumentation sowie das Changelog.

Ansonsten ist der Zugang zur Beta kostenlos. Inwieweit die App irgendwann mal kostenpflichtig wird, kann der Entwickler jetzt noch nicht sagen. Sein Ziel ist auf jeden Fall den besten Dateimanager zu programmieren, den er für den Mac gibt.

-> https://marta.yanex.org

Permalink

iTerm2 · Kommandozeile jederzeit per Hotkey starten

Über meinen Terminal-Ersatz bzw. das Pimpen von iTerm2 hatte ich schon vor knapp einem Jahr eine Kleinigkeit geschrieben.

Nun soll es ja Leute geben, die nahezu 8 Stunden ihrer täglichen Arbeitszeit im Terminal leben oder immer wieder darauf zugreifen müssen. iTerm2 bietet per Hotkey genau diese Funktionalität. Wie das geht? Nun, das möchte ich heute kurz zeigen.

Bildschirmfoto 2018-03-16 um 15.07.29-minishadow_1300px-fs8

Zunächst öffnet man die iTerm2 Einstellungen und aktiviert Keys.

Unten links klickt man anschließend die Schaltfläche Create a Dedicated Hotkey Window… an.

Bildschirmfoto 2018-03-16 um 15.08.57-minishadow_1300px-fs8

Daraufhin öffnet sich ein Unterfenster, in dem man entweder einen Hotkey oder einen Double-Tap Key zur sofortigen Aktivierung von iTerm2 hinterlegen kann. Zusätzliche Features wie Animationen o.ä. kann man hier ebenfalls direkt festlegen.

Über die Schaltfläche OK wird ein neues Profil mit dem Namen Hotkey Window erstellt.

Bildschirmfoto 2018-03-16 um 15.09.10-minishadow-fs8

Auf dieses Profil kann man nun unter Profiles zugreifen und ggf. Anpassungen vornehmen.

Da hier viele Einstellungen vom Default-Profil übernommen werden, sind die Fenster-Einstellungen sicher am interessantesten. Neben der Transparenz sowie dem Hintergrund-Blur-Effekt kann man hier u.a. unter Style die Position des hereinfliegenden iTerm2 Fensters festlegen.

Bildschirmfoto 2018-03-16 um 15.21.13-minishadow_1300px-fs8

Drückt man jetzt die vorher festgelegte Tastenkombination bzw. 2x den Double-Tab Key hat man sofortigen Zugriff auf das (Ersatz-)Terminal. Das Ganze natürlich unabhängig von der gerade im Vordergrund befindlichen App. Diese wird einfach überlagert.

Voraussetzung für dieses Feature ist allerdings, dass iTerm2 im Hintergrund aktiv ist, was bei einem Terminalholic aber eh immer der Fall ist

Bildschirmfoto 2018-03-16 um 15.28.19_1300px-fs8

(via)