Orgmode mit Emacs, Orgzly und Nextcloud zum Aufgabenmanagement

Feb 20, 2021 00:00 · 1781 words · 9 minute read gtd emacs linux android

Summary: Mein (für mich relativ neues) Aufgabenmanagement mit Emacs im org-mode, Orgzly auf dem Smartphone und Nextcloud zur Synchronisierung. Immer noch basierend auf Plaintextfiles.

Vorgeschichte

Das mir so etwas noch passiert.

Seit Beginn meiner Unix-/Linux-Zeit nutze ich den vi als Texteditor, einfach weil er immer und überall einfach da gewesen war und ist.

Egal ob mein erstes Suse-Linux oder HP-UX immer war er als treuer Begleiter da. Auch wenn er nun als vim unter Ubuntu und beruflich unter Windows etwas moderner aussieht, hört er immer noch auf die “alten” Kommandos.

Seit vielen, vielen Jahren verwalte ich meine privaten und beruflichen Aufgaben (TODO), Projekte (mit NEXT-Actions), Referenzinformationen (projektunabhängige wichtige Informationen) und Ideen (SOMEDAYMAYBE) mit dem vi in einzelne Plaintextfiles, wie z. B. privat.txt oder someday.txt. Diese Daten kann ich seit dem Ende des 20. Jahrhunderts bin heute und in Zukunft sicherlich ohne großßen Aufwand mit einem Texteditor lesen und editieren.

Idee in diesen Plaintextfiles ist es, eine Aufgabe, Idee, Notiz etc. in einer Textzeile zu erfassen und zu verwalten. In dieser Zeile werden die Beschreibung der Aufgabe, ihr Fälligkeitsdatum, der u. U. notwendige Kontext, das evtl. zugehörige Projekt und dann auch das Erledigungsdatum festgehalten.

Man kann mit Betriebssystembordmitteln durch all diese Textfiles suchen und filtern und sich die Ergebnisse sortiert ausgeben lassen (grep, sort etc.).

Was mir dabei manchmal fehlte war, eine visuelle Projektstruktur, die den Ablauf eines Projektes optisch einfach darstellen kann und bei der ich schnell erkennen kann: Was ist erledigt und was steht an, um abschätzen zu können, wieviel Aufwand liegt noch vor mir? Das benötige ich sehr oft beruflich, da ich in einer Verwaltungsfirma vielen Geschäftsführern und Abteilungsleitern der Projektgruppenfirmen Rede und Antwort stehen muss und das leider oft ad hoc und nicht zu Statusgesprächen, die es bei uns im Unternehmen übergreifend leider viel zu selten gibt.

Umsetzung

Doch nun - ist schon etwas länger her - habe ich mich im letzten Jahr mit dem org-mode beschäftigt. Mit diesem soll das alles möglich sein und dennoch arbeitet man in Plaintextfiles. Aha. “Your life in plain text” heisst es auf der orgmode.org-Seite.

Gehört hatte ich davon schon des öfteren, aber Emacs als Editor zur Nutzung von org-mode war für mich immer sehr abschreckend.

Die Einstiegshürde war aber gering gegenüber dem Nutzen. Ausschlaggebend für mich war dann die Möglichkeit eines Agenda-Views über verschiedene org-Dateien hinweg.

Zusammen mit der App Orgzly aus dem F-droid Store und meiner Nextcloud habe ich nun ein neues “trusted System” für Inbox und Aufgabenmanagement nach der GTD-Idee von David Allen, mit dem Emacs im org-mode, Orgzly und der Nextcloud, um alles auf meinem Tuxedo-Notebook und meinem Android-Smartphon synchron zu halten.

Ich beschreibe hier alles nur relativ grob und einfach. Am Ende des Blogposts habe ich Links auf weiterführende Informationen zusammengestellt. Sehr hilfreich finde ich die Youtube-Videos von Rainer König. Diese kann ich empfehlen.

Emacs

Emacs ist ein Akronym und steht für E-scape M-eta A-lt C-ontrol S-hift. Mit diesen Tasten leitet man in diesem Editor, den es für Linux in jeder Distribution und für Windows hier herunterzuladen gibt, Befehlssequenzen ein.

Ich will hier nicht zu detailliert auf den Emacs eingehen, denn dazu gibt es wirklich genug an Info im Internet zu lesen.

Für die Freunde der Mausbedienung ist er selbstverständlich über die Maus bedienbar.

Für Tastaturfreunde wie mich hier zum Einstieg ein paar Befehlskürzel:

Kommando    Befehl
----------------------------------------------
C-x C-f     lade Datei                        
C-x C-s     sichere Datei                     
C-x s       sichere Puffer                    
C-x C-b     zeige Pufferliste an              
C-x b       wechsle zu Puffer                 
C-x C-c     beende Emacs                      
C-x 1       lösche alle Fenster außer einem   
C-x u       widerrufen                        

Emacs im org-mode

Öffnet oder erzeugt man eine Datei mit der Dateiendung “.org”, so befindet sich der Emacs, wenn das org-mode-Paket installiert ist (Linux-Systeme haben das automatisch), im org-mode, was man in der Statuszeile unten und an dem Org-Menüpunkt erkennen kann:

Hier ist ein Screenshot einer org-Datei zu sehen. Der Status org sowie der Menüpunkt org und die Dateiendung org sind rot umrandet

Ab diesem Zeitpunkt stehen einem also die org-mode-Funktionalitäten bereit.

Hierarchien und Projektstrukturen im Outliner-Style

Hier nun - endlich - eine Möglichkeit für mich Projekte, Aufgaben und Ideen sauber zu strukturieren.

Ich starte die Zeile mit einem Sterchen/Asterix “*”, um diese Zeile als Überschrift, wie z. B. als Projekttitel zu definieren.

Unterhalb dieser kann ich dann über die Anzahl der vorangestellten Sternchen bestimmen, zu welcher Ebene ein Eintrag gehört.

Beispiel:

* Projekt 4711
** Projektidee ausarbeiten
*** Projektskizze erstellen
*** Informationen recherchieren
*** möglichen Umsetzungspfad definieren
*** groben Zeit- und Kostenplan skizzieren
*** Projektideepräsentation erstellen
** Projekt dem Entscheidungsgremium präsentieren

* Projekt 4712...

Stelle ich meinen Cursor auf die erste Zeile (Projekt 4711) und drücke die Tabulatortaste, sow werden die Ebenen mit mehr als einem Sternchen “eingeklappt”, d. h. sie sind nicht mehr sichtbar und die Zeile mit dem Projekt 4712 rutscht nach oben auf. Neben der Zeile * Projekt 4711 erscheinen zwei Punkte, um zu visualisieren, dass es weitere Ebenen zu der aktuell ausgewählten Zeile gibt, die man mit einem Druck auf die Tabulatorentaste wieder aufklappen kann.

Mit Alt und den Cursortasten links und rechts kann man eine Zeile um eine Ebene nach oben oder unten umdefinieren. Mit Alt und Pfeil nach oben oder unten kann man eine Zeile in der Struktur nach oben oder unten verschieben.

Checklisten in Projekten anlegen

Anstatt nur Überschriften mittels Sternchen zu definieren, können wir auch Aufgaben erstellen.

* Projekt 4711
** Projektidee ausarbeiten
  - [] Projektskizze erstellen
  - [] Informationen recherchieren
  - [] möglichen Umsetzungspfad definieren
  - [] groben Zeit- und Kostenplan skizzieren
  - []  Projektideepräsentation erstellen
** Projekt dem Entscheidungsgremium präsentieren

* Projekt 4712..

Diese Aufgaben können nach Erledigung mit einem “x” als erledigt gekennzeichnet werden. Wenn man dies in der Aufgabenzeile mit C-c umschaltet von unerledigt auf erledigt (und umgekehrt).

Oft ist es hilfreich, in der obersten Zeile zu erkennen, wieviele Aufgaben bereits erledigt sind. Dies erreicht man durch ein nachgestelltes [/] in der Überschrift. Nach einer Aktualisierung der Datei, wird dann angezeigt wieviele Aufgaben von wievielen bereits erledigt sind. Das genaze kann man sich auch prozentual mittels [%] anzeigen lassen:

* Projekt 4711
** Projektidee ausarbeiten [2/5]
  - [x] Projektskizze erstellen
  - [x] Informationen recherchieren
  - [ ] möglichen Umsetzungspfad definieren
  - [ ] groben Zeit- und Kostenplan skizzieren
  - [ ]  Projektideepräsentation erstellen
** Projekt dem Entscheidungsgremium präsentieren

* Projekt 4712...

Zusammangeklappt sieht das ganze dann so aus:

* Projekt 4711
** Projektidee ausarbeiten [2/5]...
** Projekt dem Entscheidungsgremium präsentieren

* Projekt 4712..

Aufgaben mit Status und Fälligkeiten anlegen

Mit dem Schlüsselwort TODO kann ich eine Zeile als Aufgabe definieren und dieser später dann zum Beispiel einen Fälligkeitstermin zuordnen.

* Projekt 4711...

* Projekt 4712
** TODO Aufgabe A
** TODO Aufgabe B 

Mit Shift und Pfeil nach rechts oder links kann man durch die Aufgabenstatus blättern.

Im Standard sind nur TODO und DONE definiert, aber man kann einfach weitere eigene definieren, wie zum Beispiel WAITING oder CANCELLED.

Mittels C-c C-s kann man einen Termin, an dem man die Aufgabe angehen will, festlegen (s für schedule). Und mittels C-c C-d kann man eine Deadline für die aktuelle Aufgabe definieren.

Dazu wird im unteren Editorbereich ein Kalender zur Datumsauswahl eingeblendet.

Wenn man zu Aufgabe A einen Termin und eine Deadline definieren würde, dann sähe das Ergebnis im Emacs so aus:

** TODO Aufgabe A
   DEADLINE: <2021-02-28 So> SCHEDULED: <2021-02-26 Fr>
** TODO Aufgabe B 

Selbstverständlich können Termine auch als regelmässig wiederkehrende Termine erstellt werden. Dazu bitte die Links am Ende des Posts nach Hinweisen durchsuchen.

Verteilte Dateien - teile und herrsche

Um berufliche von privaten Aufgaben oder Ideen von konkreten Projekten zu trennen, teile ich diese verschiedenen Aufgaben oder Notizen auch direkt in verschiedene Dateien auf, die ich aber in einem gemeinsamen Verzeichnis verwalte.

inbox.org        -> hauptsächlich für Orgzly (s. u.), um Ideen/Aufgaben zu sammeln
job.org          -> mein beruflicher Kram
plan.org         -> meine Jahres- und Quartalsplanung
privat.org       -> mein privater Krams
referenzfile.org -> nicht projektbezogene Informationen wie z. B. gute Restaurants, Urlaubsziele etc.
someday.org      -> alles, was noch nicht geplant ist und ich vielleicht irgendwann mal angehe
tickler.org      -> feste Termine, wie z. B. Geburtstage, Jahrestage, ablaufende Dokumente etc.

In einigen von diesen Dateien habe ich Aufgaben mit Terminen und Deadlines erstellt. Natürlich will ich diese nicht alle einzelt durchgehen, um mir dann eine Übersicht zu bauen, was ich in der kommenden Woche privat und beruflich so geplant habe.

Das erledigt die folgende org-mode Funktionalität hervorragend für mich.

Agenda-View(s)

Ich habe mir die Dateien job.org, privat.org und tickler.org als sogenannte Agendafiles definiert, um mit einem C-a a eine Agenda-View aufzurufen, die mir detailliert zeigt, was ich diese Woche oder beim Wechsel mit F-orward in die nächste oder mittels B-ackward in die Vorwoche an Aufgaben oder Terminen geplant habe:

Hier ist ein Screenshot meines Agenda-Views

Ausser C-a a gibt es viele verschiedene Ideen sich seine Aufgabenliste in dieser Agenda-View anzeigen zu lassen. Dies würde hier aber zu weit führen.

Man kann sich diese Daten nach html oder auch als pdf ausgeben lassen. Mir reicht auf dem Notebook diese Ansicht. Orgzly liefert mir auf dem Smartphone mit denselben Daten ähnliche Ansichten.

Mittels S-f kann ich in der Agenda-Ansicht den sogenannten Follwo-Modus aktivieren. Wenn ich dann in der Agenda eine Zeile aktiviere, dann wird der Originaleintrag im oberen Fender angezeigt und ich habe somit Detailinfomationen.

Archivieren erledigter Aufgaben und Projekte

Dadurch, dass Aufgaben natürlich - hoffentlich - nach und nach erledigt werden, werden die Dateien natürlich irgendwann unübersichtlich.

Dem beugt dann die Archivierungsfunktionalität vor.

Dazu habe ich parallel zu dem orgfiles-Verzeichnis ein orgfilesarchiv-Verzeichnis angelegt und habe nach dem Archivieren der erledigten Aufagben nach und nach ein Logfile mit der Dokumentation meiner erledigten Aufgaben mit genauen Informationen, wann ich welche Aufgaben erledigt habe. Ich nutze dies gerne bei Rückfragen, um genauestens Auskunft geben zu können.

Um Aufgaben archivieren zu können reicht ein entsprechender Eintrag in den Dateien (#+ARCHIVE: archivdatei.org::)

Um dann einen Einzeleintrag zu archivieren reicht dann die Eingabe C-c C-x C-a.

Um einen ganzen Subtree zu archivieren gibt man einfach C-c C-x C-s ein.

Orgzly - mobiler org-mode für Android

Über den F-Droid Store findet man Orgzly.

Die App erklärt sich nahezu von allein und bringt ein Notizbuch von Hause aus mit, dass die Funktionaliät der App gut dokumentiert.

Orgzly arbeitet über Notizbücher, die den Dateien *.org entsprechen und kann übergreifend eine Agenda, die man selber an seine Wünsche anpassen kann, darstellen.

Hier ist ein Screenshot einer Orgzly-Agenda (Next-3-Days) auf meinem Android Smartphone

Orgzly kann seine Daten mit einem DAV-Verzeichnis synchronisieren, wobei ich peinlichst genau darauf achte nur auf einer Seite - entweder auf dem Smartphone oder auf dem Notebook - meine Daten anzupassen.

Synchronisation mit Nextcloud

Nextcloud bietet die Möglichkeit des DAV-Zugriffs und diese Möglichkeit nutze ich dann auch zum Synchronisieren meiner org-Dateien zwischen Smartphone <-> (Nextcloud <->) und Notebook.

In der Einrichtung in der Orgzly-App wird neben der Pfadeinstellung natürlich auch Benutzername und Passwort abgefragt.

davs://[eigener Nextcloudserver inkl. Domain]/remote.php/dav/files/[Username]/[Verzeichnis der org-Files]
Beispiel:
davs://meinenextcloudinstanz.de/remote.php/dav/files/[mein User]/orgdateien/aktuell

Weitere Informationsquellen

org-mode

Youtube org-mode Tutorial von Rainer König

org-mode für GTD

org-mode Cheatsheet