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 📼

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

Permalink

macOS Tipp: PATH Variable anzeigen und ändern

Gerade als Entwickler kann es vorkommen, dass man die $PATH Variable, eine Umgebungsvariable des Betriebssystems, die einen oder mehrere Pfade zu bestimmten Programmen oder Daten enthält, anpassen muss.

Um die aktuell gesetzten Werte dieser Variable auszulesen, genügt einer der beiden folgenden Terminalkommandos:

echo $PATH

printf "%s\n" $PATH

Bildschirmfoto 2017-08-29 um 09.23.57-minishadow_1300px

Im Ergebnis werden, durch Doppelpunkt getrennt, die gesetzten Pfade angezeigt:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/MacGPG2/bin

Doch wie passt man diese Variable nun an? Hier gibt es verschiedene Möglichkeiten:

Variante 1

Die erste Variante besteht im Editieren der zur eingesetzten Shell passenden Konfigurationsdatei. Das hat den Vorteil, dass dieses Vorgehen nutzerbasiert und somit individuell ist. Da ich beim Editor auf Vim setze, kann das beispielsweise wie folgt aussehen:

vim ~/.bash_profile
vim ~/.profile
vim ~/.bashrc
vim ~/.zshrc

Anschließend kann man in der Konfigurationsdatei über das export Kommando die PATH Variable erweitern (abspeichern nicht vergessen):

export PATH=$PATH:/new/dir/location1

Um die Änderungen direkt nutzen zu können, muss das Terminal neu gestartet oder eine der beiden folgenden Terminalkommandos ausgeführt werden:

source ~/.zshrc
. ~/.zshrc

Abschließend überprüft man über eines der ganz am Anfang des Artikels erwähnten Kommandos, ob die PATH Variable auch tatsächlich geändert wurde.

Bildschirmfoto 2017-08-29 um 09.11.55-minishadow_1300px

Variante 2 (Admin-Rechte erforderlich)

In dieser Variante, in der Änderungen der PATH Variable für alle Nutzer gelten, sind die Pfade in einzelnen Dateien gruppiert. Dazu werden bzw. sind bereits Dateien mit den gewollten Pfadangaben im Verzeichnis /etc/paths.d angelegt. Um sich die existierenden Einträge anzusehen, benötigt man wieder ein Terminalkommando:

ls -l /etc/paths.d

Über das anschließende cat Kommando kann man sich den Inhalt der bereits existierenden Dateien ansehen:

cat /etc/paths.d/MacGPG2

Bildschirmfoto 2017-08-28 um 16.40.14-minishadow_1300px

Um jetzt die PATH Variable zu erweitern, muss man in /etc/paths.d eine neue Datei anlegen und diese mit dem gewünschten Pfad befüllen. Dafür benötigt ein Terminalkommando, für das man allerdings Admin-Rechte benötigt:

sudo -s 'echo "/new/dir/location1" > /etc/paths.d/location1'

Um die Veränderungen zu übernehmen, muss man das Terminal neu starten und man sollte, wie in Variante 1, überprüfen, ob die Veränderungen tatsächlich übernommen wurden.

Variante 3 (Admin-Rechte erforderlich)

Bei dieser letzten Variante handelt es sich um eine Abwandlung der Variante 2.

Anstatt einzelne Dateien anzulegen bzw. zu editieren, knöpft man sich die zentrale Datei /etc/paths vor und kann dort zeilenweise (untereinander) Pfade ändern, löschen oder hinzufügen:

sudo vim /etc/paths

Bildschirmfoto 2017-08-29 um 10.46.47-minishadow_1300px

Zur Info:
/etc ist ein symbolischer Link zum Verzeichnis /private/etc

Da beide den identischen Inhalt haben, können die Änderungen von Variante 2 und 3 auch in /private/etc erfolgen.

Bildschirmfoto 2017-08-29 um 10.59.01-minishadow_1300px

Permalink

wp-config.php – so funktioniert die wichtigste WordPress-Datei

Grundwissen.

WordPress speichert alle Texte und den überwiegenden Teil der Einstellungen in einer Datenbank. Davon ausgenommen sind einige wenige grundlegende Vorgaben, wie z.B. die Zugangsdaten der Datenbank. Diese sind in einer Datei namens wp-config.php hinterlegt, die damit zu einem zentralen Element einer jeden WordPress-Installation wird. Was es über diese Datei zu wissen gibt und worauf bei Änderungen zu achten ist, wollen wir im Folgenden kurz erklären.

Permalink

macOS Tipp: 32-Bit Apps identifizieren

Was nächsten Monat mit iOS 11 für iPhone, iPad und iPod touch Realität wird, kommt spätestens in zwei Jahren auch auf den Mac zu: das Ende der 32-Bit Apps.

Wie Apple auf der diesjährigen Platforms State of the Union Keynote der WWDC verkündete, wird macOS 10.13 High Sierra das letzte Desktop-Betriebssystem sein, das 32-Bit Apps ohne Murren akzeptiert.

snipaste20170817_114103_1300px

Mit macOS 10.14 Mount Whitney wird es die von iOS 10 bekannten Warnungen geben; mit macOS 10.15 Riesenmammutbaum, das vermutlich Ende 2019 erscheinen wird, ist das Sterben der 32-Bit Apps besiegelt.

Wer jetzt schon mal neugierig ist, kann sich seine aktuell installierten 32-Bit Apps mit einem simplen Terminalbefehl in eine Textdatei (die dann auf dem Schreibtisch liegt) herausschreiben lassen.

system_profiler SPApplicationsDataType | grep -B 6 -A 2 "(Intel): No" > ~/Desktop/non64bit.txt

Ich war wirklich überrascht, welche Apps (inkl. Apples eigener Apps) bei mir betroffen sind. Wobei Apple in der gleichen Keynote auch ankündigte, dass bis spätestens Juni 2018 zumindest alle Apps im Mac App Store der 64-Bit Architektur entsprechen müssen.

Bildschirmfoto 2017-08-17 um 09.15.17_1300px

(via)

Permalink

Apple-ID: Bestätigungscode der Zwei-Faktor-Authentifizierung von vierstellig auf sechsstellig ändern

Ich persönlich nutze die Zwei-Faktor-Authentifizierung (2FA) bei meiner Apple-ID schon sehr lange. So lange, dass der Bestätigungs- bzw. Überprüfungscode bei mir in seiner ursprünglichen Form noch vierstellig ist und ich für den Fall der Fälle einen 14-stelligen Recovery Code habe.

Möchte man das Ganze auf den seit ca. einem Jahr verfügbaren sechsstelligen Code umstellen, steht man zunächst vor einem kleinen Problem. Denn Apple bietet nirgendwo einen Schalter an, der diese Aktualisierung zulässt; Namenswirrwarr inklusive.

snipaste20170802_091635

Der einzige Ausweg ist tatsächlich das Deaktivieren und erneute Aktivieren der 2FA.

Zweistufige Bestätigung deaktivieren

Hierfür habe ich den Browser verwendet und mich zunächst einmal mit meiner Apple-ID angemeldet. Anschließend klickt man im Bereich Sicherheit die Schaltfläche Bearbeiten und wählt beim letzten Punkt Zweistufige Bestätigung deaktivieren aus.

Bildschirmfoto 2017-08-02 um 15.42.41_1300pxBildschirmfoto 2017-08-02 um 15.42.54

Anschließend muss man das Ganze bestätigen und drei neue Sicherheitsfragen beantworten.

Die Antworten sind in diesem Fall völlig irrelevant. Sie müssen nur mindestens drei Zeichen lang sein und sich voneinander unterscheiden.

Bildschirmfoto 2017-08-02 um 15.43.59_1300px

Zwei-Faktor-Authentifizierung aktivieren

Das Aktivieren des vormals Zweistufige Bestätigung und jetzt Zwei-Faktor-Authentifizierung genannten Features erfolgt nun auf dem iPhone, iPad, iPod touch oder Mac. Voraussetzung sind iOS 9  bzw. OS X El Capitan oder neuer.

Ein Aktivieren der 2FA im Browser ist nicht mehr möglich. Man bekommt nur die unten im Screenshot zu sehenden Informationen angezeigt.

Bildschirmfoto 2017-08-02 um 15.45.44_1300px

Das ganze Prozedere wird von Apple mit etlichen E-Mails an sämtlichen hinterlegten E-Mail Adressen (die eine von der Apple-ID plus E-Mail-Adressen zur Wiederherstellung) dokumentiert.

Zusätzlich muss man sich bei all seinen Geräten mit der Apple-ID neu einloggen und ggf. FaceTime und iMessage neu aktivieren.

IMG_3829_aguDE

Ergebnis

Neben der etwas veränderten Anzeige des nun sechsstelligen Bestätigungscodes, wird vorneweg auch noch der ungefähre Ort angezeigt, von dem aus der Zugriff stattfindet.

Außerdem wird der Code ab sofort auf allen vertrauenswürdigen Geräten gleichzeitig angezeigt. Man muss im Gegensatz zur zweistufigen Bestätigung das Gerät also nicht mehr auswählen. Der 14-stellige Recovery Code entfällt komplett.

Bildschirmfoto 2017-08-04 um 19.43.05_1300px

Anwendungsspezifische Passwörter

Hatte man übrigens mit der zweistufigen Bestätigung anwendungsspezifische Passwörter für irgendwelche Apps erstellt, müssen diese für die Zwei-Faktor-Authentifizierung neu generiert werden.

Hierzu ist wieder die Anmeldung mit der Apple-ID im Browser notwendig. Anschließend führt der Punkt Passwort erstellen… unter Sicherheit > Anwendungsspezifische Passwörter zum Ziel.

Bildschirmfoto 2017-08-04 um 15.54.48_1300px

Permalink

macOS Tipp: Bildschirm über die Nachrichten App teilen

Heute mal wieder ein Tipp aus der Reihe macOS Hidden Features, an die kaum jemand denkt und das es, zumindest in diesem Fall, schon eine halbe Ewigkeit gibt.

Es geht um das Teilen des Bildschirms bzw. den Fernzugriff auf einen anderen Rechner, für den man im ersten Moment vielleicht an Apps wie TeamViewer, Skype o.ä. denkt. Möchte man eine derartige Verbindung zwischen zwei Macs herstellen, kann man auf Drittsoftware verzichten und Apples Nachrichten App nutzen.

messages-icon

Voraussetzung ist allerdings, dass die beiden teilnehmenden Personen mit einer gültigen Apple ID für iMessage angemeldet und beide Accounts aktiviert sind.

Anschließend startet man die Nachrichten App, beginnt eine neue Konversation und klickt oben rechts auf die Schaltfläche Details. Hier ist nun das Icon mit den beiden übereinanderliegenden Bildschirmen interessant, über das man für die Bildschirmfreigabe zwei Optionen angeboten bekommt.

Um Bildschirmzugriff bitten

Zum einen kann man um die Bildschirmfreigabe bitten.

Bildschirmfoto 2017-07-07 um 11.03.11_1300px 2

Bestätigt der Angefragte diese Bitte, startet die Nachrichten App einen Audioanruf, woraufhin sich ein neues Fenster öffnet, das automatisch skaliert und den Bildschirminhalt anzeigt.

Zusätzliche Optionen wie Steuerung übernehmen, Zwischenablage teilen oder das Anzeigen verschiedener verbundener Bildschirme sind über die Symbolleiste verfügbar.

Bildschirmfoto 2017-07-07 um 11.04.44-minishadow_1300px 2

Einladung zum Zugriff auf meinen Bildschirm

Natürlich gibt es auch den umgekehrten Fall, bei dem man seinen eigenen Desktop mit jemanden teilen möchte.

Daraufhin erscheint erst mal nur das bekannte Icon mit den zwei übereinander liegenden Bildschirmen in der macOS Menüleiste.

Bildschirmfoto 2017-07-07 um 11.07.00 2

Sobald der Angefragte die Einladung annimmt, wird wieder ein Audioanruf gestartet.

Da man seinen eigenen Bildschirm teilt, öffnet sich jetzt natürlich kein neues Fenster. Zusätzliche Optionen wie das Übergeben der Steuerung oder das Stummschalten des Mikrofons sind über das Menüicon verfügbar.

Bildschirmfoto 2017-07-07 um 11.07.02 2

Permalink

KeyCastr · Tastenanschläge unter macOS visualisieren

Kurzer Hinweis auf KeyCastr, einer kleinen kostenlosen Software, die einzelne Tastenanschläge und -kombinationen am Mac visualisiert darstellt.

Direkt nach der Installation, die entweder klassisch oder über Homebrew Cask erfolgen kann, muss man die App zu den Bedienungshilfen in den macOS Systemeinstellungen > Sicherheit > Privatsphäre hinzufügen.

Bildschirmfoto 2017-07-02 um 12.57.30_1300px

Anschließend kann man in den Einstellungen von KeyCastr das Erscheinungsbild des (Keystroke-)Overlays, das per default unten links am Bildschirm erscheint, anpassen und ggf. per drag-and-drop verschieben.

Man kann sich darüber hinaus auch nur die Tastenkombinationen anzeigen lassen, die die Sondertasten Command ⌘, Option ⌥ oder Control ⌃ beinhalten.

Bildschirmfoto 2017-07-02 um 14.05.34_1300px

Möchte man KeyCastr übrigens auch in iTerm oder Apples Terminal nutzen, muss man sicherstellen, dass die sichere Tastatureingabe über das jeweilige App-Menü deaktiviert bzw. dort kein Haken gesetzt ist.

2017-07-02 13_30_18

KeyCastr setzt Mac OS X 10.5 Leopard oder höher zur Installation voraus. Der Quellcode ist bei GitHub zu finden.

-> https://github.com/keycastr/keycastr