Diese Tutorium zeigt, wie man Aufgaben, die man inTaskwarrior verwaltet inConky anzeigen lassen kann.
Benutzte Komponenten
Die Versionen der hier benutzten Software:- Conky Version 1.8.1
- Taskwarrior Version 1.9.4
- Bash 4.1.10(2)
Desweiteren benutzen wir noch:
- Einen benutzerdefinierten Bericht aus Taskwarrior
- ein bash-script
- einen Eintrag in der Datei ~/.conkyrc
Erstellen des Berichts in Taskwarrior
Das erstellen benutzerdefinierter Berichte erfolgt in der Datei ~/.taskrc. Hierfuer gibt es im Internet Anleitungen ( zum Beispiel die Homepages des Taskwarrior Wiki oder von Dirk Deimeke).Fuer unseren Bericht - den ich mal conky genannt habe - tragen wir nun folgende Zeilen in die Datei ~/.taskrc ein:
~/.taskrc
...
report.conky.color=off
report.conky.discription=Tasklist for Conky
report.conky.columns=id,due,priority,description_only
report.conky.labels=ID,Faellig,Pri.,Beschreibung
report.conky.sort=due+,priority+,description_only+
report.conky.limit=10
report.conky.dateformat=Y-M-D
report.conky.filter=status:pending
...
report.conky.color=off
report.conky.discription=Tasklist for Conky
report.conky.columns=id,due,priority,description_only
report.conky.labels=ID,Faellig,Pri.,Beschreibung
report.conky.sort=due+,priority+,description_only+
report.conky.limit=10
report.conky.dateformat=Y-M-D
report.conky.filter=status:pending
...
Selbstredend kann- und sollte man den Bericht noch an persoenliche Beduerfnisse anpassen.
Den Bericht schauen wir mal an:
user@rechner/$ task conky ID Faellig Pri. Beschreibung --- ---------- ---- -------------------------- 112 2011-05-10 H Dringende Aufgabe 100 2011-05-10 L Nicht so dringende Aufgabe 2 tasks, 2 shown user@rechner/$
Dieser Bericht enthaelt aber Leerzeilen und einen Status in der letzten Zeile, Das brauchen wir in einer kurzen Anzeige in Conky aber nicht. Deshalb bereiten wir die Ausgabe in einem Script fuer Conky auf.
Das Bash Script
Hier wird jetzt die Ausgabe fuer Conky "bereinigt". Die letzte Zeile wird geloescht und die Leerzeilen werden entfernt.Dieses Script hab ich conky_task genannt. Es muss natuerlich ausfuehrbar sein.
conky_task (line 1)
- #!/bin/bash
- # Script to write tasks to stdout
- # -bon "Beamer mode" on; To mask your tasks with a phrase
- # -boff "Beamer mode" off
- TASKFILE=/tmp/tasks
- TMPFILE=/tmp/task_tmp
- BFILE=/tmp.conky.beamer
- if [ -e $BFILE ]; then
- if [ "`cat $BFILE`" == "1" ]; then
- echo -e "Wenn du dies lesen kannst,\nsteckst du deine Nase in Angelegenheiten,\ndie dich nichts angehen!"
- exit(0)
- fi
- fi
- task conky > $TASKFILE
- sed -e '/^$/d;$d;:x s/^\( *\) /\10/;tx' $TASKFILE > $TMPFILE
- mv $TMPFILE $TASKFILE
- while read i
- do
- echo "$i"
- done < $TASKFILE
Anzeige in Conky
Hier kommen wir zum letzten Schritt. Die Anzeige der Aufgaben in Conky.Dazu werden folgende Zeilen in die Konfiguration von Conky eingefuegt. Genauer gesagt in die Sektion nach "TEXT".
...
${color grey}Aufgaben $hr $color
${texeci 10 /pfad/zu/conky_task}
...Die erste Zeile schreibt nun "Aufgaben" auf den Bildschirm und die eigentlich interessante Zeile ist die zweite. Hier wird im Intervall von 10 Sekunden die Datei /pfad/zu/conky_task ausgefuehrt.
Sollte die Ausgabe nicht komplett sein kann man in der Datei ~/.conkyrc den Wert der Variable "text_buffer_size" hochsetzen. Ich habe ihn auf "text_buffer_size 1024" gesetzt und die Ausgabe ist komplett.
Zusaetzlich muss man unter Umstaenden die Breite der Ausgabe noch anpassen.
Damit werden die Aufgaben aus dem Bericht in Conky angezeigt.