Permalink

Howto: iTerm2 · Pimp your macOS Terminal

Nachdem hin und wieder mal Nachfragen zum Aussehen meines Terminal gekommen sind, möchte ich heute eine etwas ausführlichere Anleitung schreiben.

Bildschirmfoto 2017-04-10 um 20.28.56_1300px

Direkt vorneweg: bei der App handelt es sich nicht um das macOS Terminal, sondern iTerm2; einem Terminal-Ersatz für macOS.

Die App bietet vielerlei Features, die man in Apples Variante vergeblich sucht. Es soll heute aber nicht um einzelne Features, sondern vielmehr den optischen Vorzügen gehen.

Schritt 1 – iTerm2 installieren

Bevor es gleich ans Eingemachte geht, muss man iTerm2 erst einmal installieren.

Neben der Installation über Homebrew, steht auch ein herkömmlicher Download zur Verfügung, mit dem man die App ganz normal in den Programme-Ordner von macOS verschieben muss.

brew cask install iterm2

Bildschirmfoto 2017-04-11 um 02.06.15-minishadow

Schritt 2 – Theme installieren

Da sich iTerm2 in den Standardeinstellungen optisch kaum vom macOS Terminal unterscheidet, folgt mit der Installation eines Themes die erste Anpassung.

Wer viel Zeit hat, kann sich einmal durch die verfügbaren iTerm2-Color-Schemes klicken und seinen Favoriten selber wählen. Ich persönlich bin mit dem Solarized Dark Theme (Patched) sehr zufrieden, welches in den iTerm2 Einstellungen unter Profiles > Colors > Color Presets… zunächst importiert und danach ausgewählt werden muss.

Bildschirmfoto 2017-04-08 um 00.12.31-minishadow_1300px

Wenig überraschend ist das Ergebnis ein leicht verändertes Theme.

Bildschirmfoto 2017-04-11 um 02.09.11-minishadow

Schritt 3 – Shell installieren

Anschließend geht es an die Installation der Z-Shell (zsh). Hier gibt es verschiedene Configuration Frameworks; das bekannteste und am meisten genutzte ist mit Sicherheit Oh-My-Zsh.

Neben einigen funktionalen Vorteilen gegenüber bash lässt sich (oh-my-)zsh durch die riesige Open-Source-Community und damit einhergehenden Plugins einfach sehr gut anpassen. Gerüchten zufolge soll zsh auch schneller als bash sein.

Die Installation erfolgt auf jeden Fall über das Terminal:

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Falls Xcode oder zumindest die Command Line Developer Tools noch nicht installiert sind, bricht die Installation an dieser Stelle mit einem Popup ab.

Bildschirmfoto 2017-04-10 um 04.16.58-minishadow

Hier muss man einfach nur auf die Schaltfläche Installieren klicken und danach den Befehl zur Installation von oh-my-zsh erneut ins Terminal eingeben.

Hinweis: Zur Änderung der Shell wird das Passwort des angemeldeten Nutzers benötigt.

Bildschirmfoto 2017-04-11 um 02.10.23-minishadow

Schritt 4 – zsh-Theme anpassen

Nachdem die Shell-Installation erfolgreich abgeschlossen wurde, muss das zu verwendende Theme mit einem Editor in der oh-my-zsh-Konfigurationsdatei angepasst werden.

Das funktioniert generell mit jedem Editor; um das Terminal allerdings nicht groß zu verlassen, empfehle ich vim, welches direkt in macOS zur Verfügung steht.

vim .zshrc

Kurzer vim-Exkurs

Die Pfeiltasten dienen in diesem Editor der Navigation. Dazu muss man natürlich die Shortcuts wissen; die hier benötigten sind:

yy → Zeile in die Zwischenablage kopieren
p → Zeile aus der Zwischenablage einfügen/duplizieren
i → aktiviert den Einfügen-Modus von Text

Der in diesem Schritt benötigte Text wird dann ganz normal über die Tastatur eingegeben. Mit der ESC-Taste verlässt man den Text-Einfügen-Modus wieder.

ZSH_THEME="agnoster"

:x → Änderungen speichern und vim beenden
:q! → vim beenden ohne die Änderungen zu speichern (nur im Fall der Fälle notwendig)

Bildschirmfoto 2017-04-11 um 11.52.32-minishadow

Startet man iTerm2 jetzt neu, ist die Ernüchterung zunächst groß…

Bildschirmfoto 2017-04-11 um 11.55.35-minishadow

Schritt 5 – Schriftart installieren

Dass die Anzeige im vierten Schritt etwas kryptisch aussieht, liegt am verwendeten (falschen) Font.

Nun gibt es eine ganze Reihe an Powerline Fonts. Ich persönlich empfehle Melso Dotted; speziell Meslo LG M DZ Regular for Powerline → bei GitHub einfach auf die Schaltfläche View Raw klicken und anschließend den heruntergeladenen Font über den Finder systemweit in macOS installieren.

Bildschirmfoto 2017-04-08 um 00.46.05-minishadow_1300px

Nachdem die neue Schriftart installiert ist, öffnet man erneut die iTerm2 Einstellungen und wählt diese unter Profiles > Text > Change Font aus.

Die Schriftgröße ist bei mir zudem auf 14 Pixel gesetzt.

Bildschirmfoto 2017-04-08 um 00.47.15-minishadow_1300px

Daraufhin wird aus dem einst kryptischen Aussehen eine wesentlich ansehnlichere Anzeige.

Bildschirmfoto 2017-04-11 um 11.55.53-minishadow

Schritt 6 – Powerlevel9k theme for zsh (optional)

Wem das im vierten Schritt aktivierte agnoster-Theme nicht gefällt oder ausreicht, sollte sich das Powerlevel9k-Theme genauer ansehen.

Die Installation erfolgt wieder über das Terminal; die Aktivierung des Themes über die oh-my-zsh-Konfigurationsdatei.

git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

Bildschirmfoto 2017-04-08 um 00.39.50-minishadow_1300px

Das agnoster-Theme muss jetzt natürlich per # auskommentiert werden. Die neu in der Konfigurationsdatei einzufügende Zeile lautet:

ZSH_THEME="powerlevel9k/powerlevel9k"

Was durch das Anflanschen von Zeit & Co. erst mal wenig spektakulär aussieht, lässt sich in der Konfiguration zum Theme umfangreich anpassen. Wer daran Interesse hat, muss sich hier einfach mal selbst einlesen.

Bildschirmfoto 2017-04-11 um 14.07.17-minishadow

Weitere Tweaks

Wie ich bereits am Anfang irgendwo schrieb, gibt es unzählige Anpassungsmöglichkeiten sowie Plugins für zsh. Nachfolgend vier kleine Beispiele:

custom prompt styles

Per default wird im Terminal immer user@hostname angezeigt. Das ist in der Regel unnötig und bläht das Terminal nur unnötig auf.

Auch hier führt der Weg wieder über die oh-my-zsh-Konfigurationsdatei, der folgende Zeile hinzugefügt werden muss:

DEFAULT_USER=”$USER”

Bildschirmfoto 2017-04-11 um 15.04.17-minishadow

Daraufhin muss man iTerm2 neu starten und das user@hostname-Konstrukt ist verschwunden.

Bildschirmfoto 2017-04-11 um 15.04.52-minishadow

word jumps

Per default ist das Springen zwischen den Worten mit Opt + → oder ← nicht möglich.

Für die Aktivierung muss man die iTerm2 Einstellungen öffnen und zu Profiles > Keys navigieren. Hier müssen, wie im Screenshot zu sehen, über das Plus-Zeichen zwei neue Sequenzen angelegt werden:

Wortsprung rechts
⌥→
Send Escape Sequence
f

Wortsprung links
⌥←
Send Escape Sequence
b

Bildschirmfoto 2017-04-11 um 15.14.25-minishadow_1300px

zsh-autosuggestions

Auf Basis der in der Vergangenheit eingegebenen Terminal-Kommandos versucht dieses Plugin vorherzusagen, was man aktuell eingeben möchte.

Bildschirmfoto 2017-04-11 um 16.05.38-minishadow

Die Installation kann über Homebrew oder als Direktdownload per Terminal erfolgen:

Homebrew

brew install zsh-autosuggestions

Damit das Plugin aktiviert wird, muss man erneut die oh-my-zsh-Konfigurationsdatei editieren und folgende Zeile am Ende der Datei hinzufügen:

source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh

Bildschirmfoto 2017-04-11 um 16.19.49-minishadow

Direktdownload

git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions

Zur Aktivierung des Plugins muss man in der oh-my-zsh-Konfigurationsdatei die Sektion plugins=(git) suchen und diese erweitern:

plugins=(git zsh-autosuggestions)

Bildschirmfoto 2017-04-11 um 16.21.19-minishadow

zsh-syntax-highlighting

Dieses Plugin kümmert sich um Syntax Highlighting. Auch hier kann die Installation wieder über Homebrew oder als Direktdownload per Terminal erfolgen:

Homebrew

brew install zsh-syntax-highlighting

Die Aktivierung erfolgt analog zum Autosuggestions-Plugin am Ende der oh-my-zsh-Konfigurationsdatei:

source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

Bildschirmfoto 2017-04-11 um 16.20.30-minishadow

Direktdownload

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

Auch hier erfolgt die Aktivierung analog zum Autosuggestions-Plugin.

plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

Bildschirmfoto 2017-04-11 um 16.21.48-minishadow

In diesem Sinne schon mal Frohe Ostern. Wir höhen uns vermutlich erst nach den Feiertagen wieder.

(inspired by)

Permalink

speedtest-cli · Kommandozeilen Tool zum Messen der Internet Bandbreite

Möchte man daheim oder im Büro die Datenübertragungsraten des Internetanschlusses testen, führt der Weg meistens über den Browser zu speedtest.net.

Braucht man keine fancy Grafiken, kann man selbiges auch im Terminal über das Kommandozeilen Tool speedtest-cli, welches quasi eine non-GUI-Ansicht von speedtest.net ist, erreichen.

Bildschirmfoto 2017-04-08 um 01.24.40-minishadow

Die Installation erfolgt recht simpel über Brew:

brew install speedtest_cli

Möchte man den Weg über Brew nicht gehen, sind auf der Projektseite bei GitHub weitere Installationsmöglichkeiten aufgelistet. Die einfachste ist sicherlich der Download über das Terminal:

curl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod +x speedtest-cli

Jetzt kann man speedtest starten und bekommt in den default-Einstellungen, wie oben im Screenshot zu sehen, recht umfangreiche Informationen angezeigt.

Vielleicht als Hinweis:
Normalerweise startet man speedtest über den Befehl speedtest. Darüber hinaus gibt es noch die beiden Aliase speedtest-cli und speedtest_cli, die Identisches bewirken.

Auf der Projektseite sieht man auch schon, dass es recht vielfältige Optionen zum Starten des Tools gibt. Die vereinfachte dreizeilige Anzeige der Ergebnisse erzielt man mit:

speedtest --simple

Bildschirmfoto 2017-04-08 um 01.25.38-minishadow

Exkurs Keyboard Maestro

Möchte man das Testen der Internet Bandbreite automatisieren oder mit einem globalen Shortcut (ohne Umweg über das Terminal) starten, kommt wieder die Allzweckwaffe Keyboard Maestro zum Einsatz.

Nachfolgend drei Macros, die immer etwas ausgefeilter werden:

The Simple Version

Über die erste und die letzte Aktion, und das ist allen Macros gleich, wird das Macro nach dem Starten gesperrt. Damit wird verhindert, dass das Macro doppelt gestartet wird und schlussendlich unsaubere Ergebnisse liefert.

KM_Macro_Screenshot_2017-04-05 um 12.24.57

Die zweite Aktion generiert eine Notification, die über den Start des Tests informiert und schon mal darauf hinweist, dass das Ergebnis ebenfalls in einer Notification angezeigt wird.

Die dritte Aktion ist der eigentliche, in diesem Fall vereinfachte dreizeilige Test, der einige Sekunden braucht, um Ergebnisse zu liefern. Hier ist darauf zu achten, dass der vollständige Pfad zum Tool angegeben ist. Da ich die Installation über Brew nutze, steht bei mir /usr/local/bin.

Bildschirmfoto 2017-04-04 um 22.54.10

The Fancy Version

Auch hier wird das Macro über die erste und letzte Aktion gesperrt, sofern es ausgeführt wird.

KM_Macro_Screenshot_2017-04-05 um 12.25.11

Die Notification aus der zweiten Aktion, die über den Start des Tests informiert, ist nun etwas detaillierter. Man kann den Titel sowie Untertitel und den eigentlichen Text separat festlegen. Dazu wird ein kleiner Soundeffekt abgespielt.

Die dritte Aktion startet den, in diesem Fall kompletten Test (auch hier muss man wieder auf den Pfad achten) und speichert das Ergebnis zunächst in eine Variable. Diese Variable wird in der vierten Aktion durchsucht und zur Ergebnisaufbereitung vier neuen Variablen zugeordnet. Diese neuen Variablen werden in der fünften Aktion aufgegriffen und unter einem Soundeffekt als Ergebnis des Tests als Notification angezeigt.

Bildschirmfoto 2017-04-04 um 22.54.58

The Special Version

Dieses Macro ist quasi eine Kopie des ersten Macros; allerdings mit zwei kleinen Unterschieden.

Zum einen wird das Macro bei eingeloggtem User jeden Tag alle 90 Minuten automatisch ausgeführt.

KM_Macro_Screenshot_2017-04-05 um 12.32.14

Zum anderen wird anstelle des direkten Aufrufs des Speedtest-Tools ein Python-Skript gestartet, das diesen Aufruf übernimmt (hier muss man erneut auf den Pfad zum Tool achten) und das Ergebnis aufbereitet als Notification ausgibt.

Das Ergebnis wird dann im Vergleich zum ersten Macro auch etwas anders dargestellt.

Bildschirmfoto 2017-04-04 um 23.01.59

Die drei hier vorgestellten Macros habe ich bei GitHub hochgeladen, so dass sie jeder selbst ohne großes Zutun ausprobieren und modifizieren kann.

-> https://github.com/johnnycash69/km-macros

Terminal Know-how

Möchte man nur die Downloadgeschwindigkeit seine Internetanschlusses testen, kann man auf den Service von speedtest.net oder dem dazugehörigen CLI auch komplett verzichten. Es genügt im Prinzip ein Einzeiler im Terminal. Voraussetzung ist allerdings die vorherige Installation des Tools wget.

wget --no-cache cachefly.cachefly.net/400mb.test -O /dev/null

Dieses Kommando lädt von CacheFly, einem der weltweit schnellsten CDNs eine 400 MB große Datei (man kann hier auch 100 MB, 600 MB… angeben) runter und zeigt dabei die Download-Geschwindigkeit an. Die Option -O /dev/null verschiebt diese Datei auch gleich ins Nulldevice, so dass nicht unnötig Platz auf der Festplatte verschwendet wird.

Bildschirmfoto 2017-04-08 um 01.27.56-minishadow_1300px

Möchte man auch auf das gute alte wget verzichten, führt auch folgendes Kommando zu Ziel, das das in macOS eingebaute Tool curl zum Testen nutzt.

curl --no-sessionid cachefly.cachefly.net/400mb.test -o /dev/null

Bildschirmfoto 2017-04-08 um 01.33.59-minishadow_1300px

(thx @konfluenzpunkt, via, via)

Permalink

Kurztipp ‧ Youtubelabertaschen Beine machen

Der geneigte Leser dieses Blogs kennt das: Da gibt es Meetings, bei denen einige Teilnehmende bei ihren Ausführungen einfach nicht auf den Punkt kommen. Ich möchte bei solchen Veranstaltungen regelmäßig: „Skip! Skip!“ rufen oder den physischen Vorlaufbutton der Labertaschen drücken.

Was nun im Reallife nicht immer gelingt, gelingt mit einer Google Chrome Erweiterung Video Speed Controller für HTML5-Videos ganz vorzüglich.

Die Erweiterung erhöht u. A. in definierbaren Schritten die Abspielgeschwindigkeit und erlaubt es die Vor- und Rücksprungzeit in Sekunden unabhängig festzulegen – Tastaturunterstützung inklusive.

Als kleines Overlay ist die Erweiterung minimalistisch im linken oberen Bereich des Videos zu finden.

video_speed_controller_overlay

Die Optionen sind überschaubar und selbsterklärend.

videospeedcontroller_einstellungen

Das Projekt ist vollständig auf Github dokumentiert. https://github.com/igrigorik/videospeed

Video Speed Controller
Video Speed Controller
Entwickler: igrigorik
Preis: Kostenlos
Permalink

OS X Tipp: Menüleisten-Kalender mit TextBar erstellen

Ich persönlich nutze Fantastical 2 auf dem Mac, trotz seiner hin und wieder auftretenden Macken, mehrfach täglich und möchte die App im Alltag echt nicht mehr missen. Der Preis der App ist mit knapp 40 Euro allerdings nach wie vor gepfeffert, so dass nicht jeder diese Investition eingehen möchte.

Eher zufällig bin ich kürzlich auf ein kleines Script von Max Melzer gestoßen, das einen Menüleisten-Kalender im Stile von Fantastical nachbaut.

aptgetupdateDE_f2_to_textbar

Die einzigen Systemvoraussetzungen sind das kostenlose Kommandozeilentool iCalBuddy und die App TextBar, die ich in einem Review schon mal ausführlicher vorgestellt hatte und mit der man beliebigen Text über Terminal-Kommandos oder eben Scripte in der OS X Menüleiste anzeigen lassen kann.

Was ist zu tun?

Solltest du Apples Entwicklungsumgebung Xcode bereits auf deinem Mac installiert haben, kann dieser erste Punkt übersprungen werden. Andernfalls müssen zunächst die Command Line Tools (das ist ein kleiner Teil von Xcode) auf dem Mac installiert werden. Dazu muss im Terminal folgender Befehl eingegeben werden:

xcode-select --install

Bildschirmfoto 2015-10-15 um 19.49.51-minishadow

Die Command Line Tools sind notwendig, da iCalBuddy anschließend über Homebrew installiert wird. Sollte Homebrew, ähnlich wie die Command Line Tools, bei dir noch nicht installiert sein, führt folgender Befehl zum Ziel:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Anschließend kann man iCalBuddy mit diesem Terminalkommando installieren.

brew install ical-buddy

Alternativ kann man auch Cakebrew nutzen, das vielleicht etwas übersichtlicher ist. Dort einfach nach iCal-Buddy suchen und das Paket installieren.

Bildschirmfoto 2015-10-19 um 13.39.45-minishadow

Falls bei dieser Installation, gerade unter OS X El Capitan, Probleme auftreten, schau dir die Rechte von /usr/local an und ändere diese gegebenenfalls.

Zu guter Letzt lädt man sich noch das ausführlich dokumentierte (Haupt-)Script für den Menüleisten-Kalender herunter und trägt dieses in TextBar ein. Gleiches gilt für das dazugehörige Action Script (wird seit der TextBar-Version 1.7.15 unterstützt), das Apples Kalender-App startet, sofern man auf einen Eintrag im Menüleistenkalender oder den Menüpunkt Neuer Eintrag klickt.

Bildschirmfoto 2015-10-19 um 14.27.36-minishadow

Das Design und die Sprache von iCalBuddy lassen sich zudem umfassend anpassen.

Im ersten Screenshot, rechts neben Fantastical 2, sieht man die Default-Einstellungen, die zugegebenermaßen recht bunt und englisch sind. Hier lohnt sich also definitiv ein Blick in die Man-Pages von iCalBuddy, die entweder hier (Design) und hier (Sprache) online zu finden sind oder mit den Kommandos man icalBuddyConfig (Design) und man icalBuddyLocalization (Sprache) direkt im Terminal angezeigt werden.

-> https://gist.github.com/moehrenzahn

Permalink

Flashlight · Spotlight kostenlos um über 160 Features erweitern

Über Flashlight, ein sehr interessantes Plugin-System für Spotlight, hatte ich letztes Jahr zur Beta-Phase schon ein paar Worte verloren.

Mittlerweile ist das System, das weiterhin kostenlos und open source ist, erwachsen geworden und bietet in der finalen Version 1.0, die gestern Abend veröffentlicht wurde, über 160 Plugins an.

Bildschirmfoto 2015-04-14 um 22.15.21-minishadow.png

Die Verwaltung der Plugins erfolgt in einem recht übersichtlichen Fenster, das auch gleich ein paar Hinweise zur Anwendung gibt.

Die Erweiterungen selbst sind recht vielfältig und gehen, wie oben zu sehen, vom Anrufen einer Person, dem Versenden von E-Mails oder iMessage Nachrichten, Anzeigen des Wetters, Abfahren von Terminal-Kommandos, Aktivieren/Deaktivieren vom WLAN oder Bluetooth bis hin zu Systemkommandos zum Herunterfahren oder Sperren des Macs.

Aber auch Websuchen bei Amazon, Wolfram Alpha, Google, DuckDuckGo oder Twitter sind möglich. Man kann sogar, nach dem Vorbild von Fantastical, in einfacher natürlicher (englischer) Sprache Erinnerungen oder Kalender Events erstellen.

Nachfolgend ein paar Beispiele:

Bildschirmfoto 2015-04-14 um 22.43.12-minishadow.png Bildschirmfoto 2015-04-14 um 23.00.49-minishadow.png Bildschirmfoto 2015-04-14 um 22.37.19-minishadow.png Bildschirmfoto 2015-04-14 um 22.45.19-minishadow.png Bildschirmfoto 2015-04-14 um 23.05.39-minishadow.png Bildschirmfoto 2015-04-14 um 23.12.15-minishadow.png

Das Ganze erinnert natürlich immer noch sehr stark an die OS X Schnellstarter Alfred und Launchbar. Flashlight hat aber, meiner Meinung nach, noch sehr viel Luft nach oben, so dass ich hier (vorerst) keine große Gefahr sehe.

Dennoch ein cooles Projekt, von dem durch die sehr einfache Erweiterbarkeit hier sicher nicht zum letzten Mal zu lesen ist.

-> http://flashlight.nateparrott.com  

Permalink

Flashlight · Spotlight um Plugins erweitern

Bei Flashlight handelt es sich um ein recht interessantes Plugin System, das die Suchergebnisse von Spotlight unter OS X Yosemite erweitert.

 Flashlight

So lassen sich momentan, nach dem Vorbild der OS X Schnellstarter Alfred oder LaunchBar, Websuchen bei Google sowie Wolfram Alpha ausführen, Terminal Kommandos starten oder das Wetter überprüfen.

Die einzelnen Plugins von Flashlight sind in Python geschrieben, was das ganze System vergleichsweise einfach erweiterbar macht. Die API ist bei Github zu finden. Dennoch eine kleine Warnung vor Bugs. Entwickler Nate Parrott schreibt selbst: 

It’s very rough right now, and a horrendous hack, but a fun proof of concept.

Trotzdem ein recht interessantes Projekt, das die Möglichkeiten von Spotlight unter Yosemite aufzeigt.

-> http://flashlight.nateparrott.com
-> https://github.com/nate-parrott/Flashlight

(via)

Permalink

Threaded layout for MailMate

MailMate, und an dieser Stelle empfehle ich unser Review, ist nicht nur ein extrem genialer E-Mail Client, sondern mit Sicherheit auch das am meisten unterschätzte Programm für den Mac.

Bei GitHub hat Max Andersen vor ein paar Tagen mit dem Threaded View ein neues Layout veröffentlicht, das alle zum Betreff gehörenden Themen und Nachrichten besser auflistet.

Screenshot 2014-10-31 11.01.06

Installation:

  1. threaded.plist herunterladen
  2. nach ~/Library/Application Support/MailMate/Resources/Layouts/Mailboxes/ kopieren (eventuell müssen die Verzeichnisse erst erstellt werden)
  3. MailMate neu starten und die Threaded Option im Menü über View > Layout auswählen

-> https://gist.github.com/maxandersen/