Artikelformat

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

Autor: Björn

Ich bin Björn und quasi der COO von aptgetupdateDE. Ich kümmere mich um die PR und allerlei Kontaktaufnahmen zu Firmen und Softwareentwicklern. Erreichbar bin ich bei Twitter, App.net und natürlich per E-Mail.

13 Kommentare

  1. Tja leider läuft icalBuddy bei mir nicht mehr unter El Capitan … weder das bin von der Homepage -> Crash, noch die HomeBrew Variante (liefert „error: No calendars“) …

    Antworten
    • Die Version von der Homepage stützt ab, da es ne i386 binary ist; der Kalender unter OS X aber ne x86_64 Architektur hat. Dieses Problem wird mit der Installation von icalBuddy über brew gefixt.

      Den ’no calendars error‘ kann ich mir spontan nur mit ner falschen Konfiguration von icalBuddy erklären. Ich bin auch mit El Capitan unterwegs finde alle Kalender mit dem Tool.

      Antworten
      • . .. hab’s gefunden … in dem SystemPreferences muss iTerm2 (benutze ich statt Terminal.app) in Privatsphäre iTerm2 Zugriff auf Kalender und Erinnerungen gewährt werden… Anders als bei der Terminal.App meldet sich OS X aber nicht und fragt mal nach … Holy moly!!!

        Antworten
          • Nur für’s Protokoll: Natürlich muss auch TextBar der Zugriff auf Kalender und Erinnerungen gewährt werden.

  2. Ich bekomms nicht zum Laufen

    Wenn es an den Zugriffsrechten von TextBar auf Kalender&Co liegen sollte: wie gebe ich die denn manuell frei, wenn die App diese nicht von selbst einfordert?

    Antworten
    • Systemeinstellungen > Sicherheit > Privatsphäre > Kalender bzw. Erinnerungen

      Dort muss neben TextBar jeweils ein blauer Haken sein. Andernfalls funktioniert das Script bzw. icalBuddy nicht.

      Antworten
      • Das war mir schon klar – nur taucht TextBar selbst da gar nicht auf (bei mir nur iTerm). Und reinziehen läßt sich da ja auch nichts. ¯\(º_o)/¯

        Aber ich bin meinem eigentlichen Problem auf die Schliche gekommen: den Skripten fehlte das entsprechende Attribut zum ausführen… CHMOD to the rescue.

        Antworten
  3. Lustig: nachdem ich das Programm jetzt bestimmt ne Stunde laufen habe, tauchten jetzt gerade die Hinweise für den Zugriff auf Kalender und Erinnerungen auf. Seltsam.

    Antworten
    • Ich nehme an, dass du dir die Kommentare im Script nicht durchgelesen hast? ;)

      # The icalBuddy script is quite slow to run, so we need to find a way to not make it run on every refresh of the main script. For this we save the icalBuddy output to a local file.

      Kurz gesagt liegt das an der Temp-Datei in deiner Dropbox (~/Dropbox/Development/menucalendartemp.txt), die nur einmal in der Stunde gepingt wird, um Veränderungen zu checken.

      # Here the find command checks wheather the local temp file has been modified in the last hour. If it wasn’t, $lastedit is set to the path of the temp file.

      Antworten
      • … einfach das temp file löschen (also rm ~/Dropbox/Development/menucalendartemp.txt <- den bescheuerten Pfad nimmt hoffentlich niemand) und TextBar refreshen

        Antworten
  4. evtl. muss auch erwähnt werden, dass die Pfade zu der temporären Datei angepasst werden muss :(
    Sonst habe ich folgende noch angepasst:
    – die Position der Optionen separateByDate und localizationFile müssen noch vertauscht werden
    – bei mir (habe iTerm mit Bash-it) funktioniert less Befehl nicht. Es meckert, dass die temporäre Datei binary ist. Lösung statt less wird cat eingesetzt

    Antworten

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.