Anzeigen von Aufgaben aus Taskwarrior in Conky

Diese Tutoriu/m zeigt, wie man Aufgaben, die man in Taskwarrior verwaltet in Conky 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:

...
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.

#!/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.

 

Vielen Dank für den Kommentar mit der Korrektur, Daniel. Ich habe es geändert. Der Text wurde von einer statischen Seite auf einen Artikel umgesetzt und weiß leider nicht ob -und wenn ja wie- die Kommentare dann übernommen werden können. Da es auch der einzige Kommentar zu der Seite ist, habe ich mir erlaubt deinen Kommentar hier noch mal im Artikel anzuhängen:

Daniel schrieb:

Hallo,
danke für die sehr sehr schoene Anleitung.
Ich musste nur die Klammern in der Zeile 14:
exit(0) ::::: zu ::::: exit 0
entfernen, dann lief und läuft es immernoch perfekt :).

Schreibe einen Kommentar

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

Wordpress Anti-Spam durch WP-SpamShield