In diesem Tutorium wird erklaert, wie man Termine von heute und morgen mittels Conky auf dem Desktop anzeigen lassen kann.
Das machen wir mittels der Ausgabe von Calcurse, die per bash script platzsparender gemacht wird. Jeder Termin wird dann eine Zeile belegen.
Programme
Die Versionen der hier benutzten Software:Das Script
Im Script werden die Daten aus Calcurse in einer Datei gespeichert. Anschliessend wird die umformatiert in eine Datei geschrieben. Diese Datei liest Conky dann aus. Ich habe das Script hier einfach conky_cal genannt. Es sollte natuerlich ausfuehrbar sein.Die Variable DATEFMT muss das Format enthalten, dass auch in Calcurse als "input_datefmt" (General options -> Punkt [9]) definiert ist.
Ausserdem gibt es noch einen "Beamer mode". Hier wird einfach nur der Satz "----- This information is not for your eyes -----" ausgegeben. Man moechte ja unter Umstaenden nicht in der Besprechung beim Kunden seine ganzen Termine per Beamer an die Wand schmeissen ;-) .
conky_cal (line 1)
- #!/bin/bash
- # Script to write appointments from today or tomorrow to stdout
- # -m Appointments for Tomorrow
- # -bon "Beamer mode" on;
- # Shows only "----- This information is not for your eyes -----"
- # -boff "Beamer mode" off
- BFILE=/tmp/conky_cal.beamer
- DATEFMT="%Y-%m-%d" # Be sure to set the same date format as in calcurse here
- # Turn on "beamer mode"
- BOn(){
- echo "1" > $BFILE
- exit 0
- }
- # Turn off "beamer mode"
- BOff(){
- rm -f $BFILE
- exit 0
- }
- DateToday(){
- DATUM=$(date +"${DATEFMT}")
- APPS=/tmp/apt
- APPTMP=/tmp/apt_tmp
- }
- DateTomorrow(){
- DATUM=$(date -d "+1 day" +"${DATEFMT}")
- APPS=/tmp/apt_m
- APPTMP=/tmp/apt_tmp_m
- }
- WriteFile(){
- calcurse -d $DATUM > $APPTMP
- sed -n -e '/ - /b time
- /^$/d;1d;s/^ \* /-/p
- t
- :time
- /^$/d;1d;s/^ - //;$!N;s/\n/ /p
- ' $APPTMP > $APPS
- }
- ReadFile(){
- while read I
- do
- echo $I
- done < $APPS
- }
- # Check "beamer mode"
- if [ "$1" == "-boff" ]; then
- BOff
- fi
- if [ -e $BFILE ]; then
- if [ "`cat $BFILE`" == "1" ];then
- echo "----- This information is not for your eyes -----"
- exit 0
- fi
- fi
- case "$1" in
- -bon)
- BOn
- ;;
- -boff)
- BOff
- ;;
- -m)
- DateTomorrow
- WriteFile
- ReadFile
- ;;
- *)
- DateToday
- WriteFile
- ReadFile
- ;;
- esac
Die Anzeige in Conky
Dazu ruft man in Conky die Datei im gewaehlten Intervall auf. Ein Eintrag in der Datei ~/.conkyrc kann folgendermassen aussehen:~/.conkyrc
...
${color grey}Termine von heute $hr $color
${texeci 60 /pfad/zu/conky_cal}
${color grey}Termine von morgen $hr $color
${texeci 60 /pfad/zu/conky_cal -m}
...
${color grey}Termine von heute $hr $color
${texeci 60 /pfad/zu/conky_cal}
${color grey}Termine von morgen $hr $color
${texeci 60 /pfad/zu/conky_cal -m}
...
Damit werden die Termine auf dem Bildschirm alle 60 Sekunden aktualisiert. Den Eintrag sollte man natuerlich noch auf die persoenlichen Gegebenheiten anpassen.
Das war auch schon alles.
Jetzt sollte Conky die Termine Anzeigen.
Viel Spass damit.