Warum todo.txt fuer mich mehr als nur eine ToDo-Liste ist

Überlegungen

ToDo-Listen bzw. Programme um diese zu verwalten gibt es Unzählige.

Damit geräteübergreifend auf diese zugegriffen werden kann, nutzen viele Lösungen externe Services (z.B. RememberTheMilk). Andere nutzen die Synchronisationsmöglichkeiten mit Cloud-Storage Anbietern (z.B. Dropbox). Wenn ich meine Bedenken bzgl. Fremdhosting außer Acht lasse, ergeben sich für mich bei alle diesen Lösungen Probleme der einen oder anderen Art:

  • es gibt dafür keinen -Client
  • es gibt dafür keinen brauchbaren -Client
  • in der Shell sehe ich schwarz (und damit ist nicht die Hintergrundfarbe des Terminals gemeint)

Nach reiflicher Überlegung, kommt eigentlich nur ein System in Frage, welches die Einträge in eine (oder ein paar wenigen) Textdatei(en) speichert. Synchronisation ist damit auch kein Problem: Netzlaufwerk (z.B. webdav) oder Cloud (mit Synchronisation).

Letztendlich fiel meine Wahl auf todo.txt, weil es mir folgendes bieten kann:

  • Reine Textdateien (todo.txt, done.txt und todo.txt.bak)
  • Bearbeiten, Auswerten problemlos in der Shell möglich
  • Ein feiner Android-Client, der nicht nur mit Dropbox synced: SimpleTask Cloudless
  • Erweiterbare Syntax von todo.txt d.h. nicht nur auf ToDo-Listen beschränkt

macht aus Kontexten @Listen und aus Projekten +Kategorien. Ich habe mich für folgende Listen entschieden:

  • @_data ist ein Spezialfall und wird verwendet um Einträge mit @_data in mittels Faltung zu verstecken.
    • die erste (@_data-)Liste ist @_contact und wird für Kontaktdaten verwendet.
    • die zweite (@_data-)Liste ist @_bookmark und wird für Lesezeichen verwendet.
  • @_sched ist für Termine gedacht und enthält eine Fälligkeit in der Form due:YYYY-MM-DD HH:MM
  • @_todo sind die Aufgaben und können auch eine Fälligkeit haben.
  • @_note sind einfache Notizen.

Weitere Besonderheiten an diesem System sind die +Kategorien. Bei Kontakten verwende ich diese für Felder (Adresse, , Telefon, Geburtstag, Notizen, etc.) welche zwecks besserem Handling in der Shell mit einem Semikolon abgeschlossen werden. Nachfolgend ein Beispiel eines Kontakteintrags in meiner todo.txt:

Todotxt Format
Beispielzeilen meiner todo.txt

 

Umsetzung

Synchronisation

Die 3 todo.txt Dateien (todo.txt, done.txt und todo.txt.bak) werden in einem WebDAV-Verzeichnis untergebracht. Dieses Verzeichnis wird auf den Linux-Kisten gemountet. Für Android verwende ich FolderSync um das WebDAV-Verzeichnis mit einem lokalen Verzeichnis zu synchronisieren. Die Synchronisation geschieht nicht nur in regelmäßigen Abständen, sondern wird auch beim Starten und Beenden von SimpleTask von Tasker angestossen.

Bedienung

Mit SimpleTask ist die Bedienung ein Klacks und wird hier nicht weiter besprochen.

simpletask

Auf den Linux-Kisten verwende ich neben der Shell vim mit den Plugins todo.vim (Faltungen, besseres Bearbeiten) und todo.txt.vim (besseres Bearbeiten) in leicht modifizierten Versionen.

todotxt_in_vim

Zusätzlich nutze ich noch Shell-Funktionen zur Suche z.b. nach Telefonnummern, Mail-Adressen oder hoch priorisierten Dingen. Lesezeichen nutzen mir in der Shell nicht so viel – diese möchte ich direkt im Browser aufrufen und speichern. Da Firefox mit der Vimperatorerweiterung der Browser meiner Wahl ist gibt es hier noch ein paar Zeilen für sie ~/.vimperatorrc – damit lassen sich Bookmarks mit der Tastenkombination SHIFT-B speichern und über ein Skript (und dmenu) auch aufrufen:

dmenu und bookmark-open.sh sind für das Öffnen der Lesezeichnen zuständig:

Mir gefällt die einfache Idee hinter todo.txt und habe diese an meine Bedürfnisse angepasst. CalDAV und CardDAV (beide bisher mit ownCloud genutzt) sind Geschichte. Termine, Kontaktdaten und Notizen bleiben so in einer bzw. 3 Dateien und schwirren nicht durch das ganze System. Als nächster Schritt ist Verschlüsselung angedacht – Tasker bietet das anscheinend in einer Version die nicht im Play-Store erhältlich ist.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax