TaskWarrior

Habe über TaskWarrior in der aktuellen Ausgabe von freiesMagazin gelesen, im zweiten von zukünftig mehreren Teilen der Artikelreihe über dieses Programm (Teil 1Teil 2).

Aus Neugierde habe ich das Programm installiert und beschäftige mich seit ein paar Tagen damit.

In den beiden genannten Artikeln bekommt schonmal ein Gefühl für die Syntax; wer sich in die gesamte Funktionalität einarbeiten möchte, dem sei die umfangreiche Manpage task-tutorial angeraten. Dazu gibt es noch die Manpages task für die Bedienung, taskrc für die Konfiguration, task-faq, task-color und task-sync.

Habe mich vorher immer wieder mit Thunderbird, KOrganizer aus KDE PIM, TaskCoach und anderen versucht, doch jedes Tool hat seine Macken:
Thunderbird kennt keine Abhängigkeiten für Aufgaben, KOrganizer ist riesig und braucht dieses furchtbare Akonadi und das UI von TaskCoach ist furchtbar langsam.

Letzlich bin ich bei einem Mix aus verschiedenen Textdateien, Foren-Einträgen und Wiki-Seiten gelandet, aber das ist alles andere als optimal.

TaskWarrior dagegen ist übersichtlich, flott und sehr funktional.

In Gentoo ist die aktuelle Version 2.1.1 bereits enthalten, für viele weitere Systeme gibt es Pakete, siehe unter http://taskwarrior.org/projects/taskwarrior/wiki/Download.

Möglichkeiten von TaskWarrior

Zu den Möglichkeiten des Programms gibt es ja schon die oben genannten Manpages und Anleitungen, deshalb steht hier nur das, was mir besonders gefällt.

In Farbe

Das Programm verwendet zwar eine reine Textausgabe, es gibt jedoch verschiedene Themes, die das ganze farblich aufpolieren. Dabei kann man wählen zwischen Themes mit 16 oder 256 verschiedenen Farben. Um die Farben auch zu sehen, muss z. B. unter Gentoo rxvt-unicode mit dem USE-Flag „256-color“ kompilieren sein.

Dank Farbe sehen auch Listen mit sehr vielen Aufgaben noch übersichtlich aus.

Die verwendbaren Farben zeig „task colors“ an:

[Farbauswahl in TaskWarrior][2]
Farbauswahl in TaskWarrior

Notizen anhängen

Man kann Notizen an eine Aufgabe anhängen:

task <id> annotate "Dies ist eine Notiz"

Verschiedene Berichte

Eine Liste der definierten Berichte lässt sich anzeigen mit

task reports

Jeder Bericht lässt sich in allen Einzelheiten ändern.

Mehrere Einträge auf einmal ändern

Befehle in task werden immer auf alle passenden Einträge angewendet, man kann somit sehr einach mehrere Aufgaben auf einmal ändern und z. B. einem anderen Projekt zuordnen.

task pro:altesprojekt modify pro:neuesprojekt

Eigene Shell

„task shell“ startet die eigene Shell. Ein Vorteil hiervon ist, dass man sich nicht die .bash_history mit den Unmengen an Befehlen zumüllt, zumindest zu Beginn.

Alternativ startet man zuerst eine neue Bash in der Bash und verwendet dann erst TaskWarrior, somit landen die Befehle auch nicht in der History.

Aufgabenübersicht auf dem Desktop (mit KDE SC)

Da ich aktuell, mal wieder, KDE SC nutze, wird das Plasma-Widget „File Watcher“ verwendet, um die Datei (~/.local/share/tw_summary) anzeigen zu lassen, in die per Cronjob jede 10 Minuten die aktuell anstehenden Aufgaben hineingeschrieben werden.

Habe dafür den foldenden Eintrag in Cron erstellt:

*/10 * * * * /usr/bin/task next rc.defaultwidth=200 rc.detection=off 2>/dev/null | tail -n +2 >~/.local/share/tw_summary

Wenn man die Ausgabe von task an eine Pipe leitet, so erkennt das Programm dies und verwendet eine Breite von 80 Zeichen für die Ausgabe; das sieht eher unschön aus, deshalb wird mit den beiden rc.xxx-Definitionen für diesen Aufruf die Konfiguration überladen, die Erkennung abgeschaltet und eine Breite von 200 Zeichen verwendet.

Sieht dann auf dem Desktop so aus (hier für ein Beispielprojekt und mit weniger Breite):

TaskWarrior-Ausgabe im Plasmoid "File Watcher"
TaskWarrior-Ausgabe im Plasmoid „File Watcher“

Auf der Projektseite von TaskWarrior sind schönere Lösungen gelistet, z. B. ein Python-Script, welches die Ausgabe von „task export“ (im json-Format) verwendet, um daraus schöne Web-Seiten zu erstellen, doch ich bevorzuge hier eher simple Lösungen.

Externe Scripte

Für einige Dinge, die mit TaskWarrior nicht funkionieren, gibt es eine Scriptsammlung auf der Projektseite: http://taskwarrior.org/projects/taskwarrior/wiki/ExternalScripts.
Enthalten sind z. B. Scripte für Benachrichtigungen auf dem Desktop (http://taskwarrior.org/boards/1/topics/1830) oder auf derselben Seite ein Beispiel für die zsh, die bei jedem Start der Shell anzeigt, was die nächsten beiden Tage ansteht.

In meiner .bashrc steht z. B.

if [ -f $(which tasks 2>/dev/null) ];
then
 task next due.before:3days
fi

Ein Beispielscript für Email-Benachrichtigungen ist auch dabei.

Fehlt noch

Das einzige, was mir noch fehlt, ist die Möglichkeit, Termine auf eine bestimmte Uhrzeit festlegen zu können, bisher beziehen sich Termine nur auf einen Tag.

Update: TaskWarrior kann doch schon mit Zeit umgehen, siehe Kommentarbereich :)

Fertig

Habe jetzt alle Listen, Wiki- und Foreneinträge in TaskWarrior verschoben, (fast) perfekt für mich :)