Calendario en conky

Para mostrar un calendario en conky se hace uso del comando cal, para saber como funciona leete su manpage (man cal en una terminal). Como verás tiene muchas opciones, podemos representar el año completo, el mes actual, el siguiente, al anterior, en fin, lo que se te ocurra o te interese.

Yo para permitirme poder cambiar el formato individual de cada parte del calendario, marcar el día actual, etc tengo un script que me facilita las llamadas desde conky, calendario.sh

#! /bin/sh
#str=`echo '\033[01;32m29'`

DATE=`date | awk -F" " '{print $3}'`

case "$1" in
mes)
cal -m | head -n1
;;
semana)
cal -m | head -n2 | tail -n1
;;
pasado)
cal -m | grep -v '[a-zA-Z]' | grep '[0-9]' | awk -F$DATE ' BEGIN {i=0}
($1 == $0 && i==0) {print $1}($1 != $0 && i==0){i=i+1;print $1}';
;;
hoy)
echo $DATE;
;;
futuro)
cal -m | grep -v '[a-zA-Z]' | grep '[0-9]' | awk -F$DATE ' BEGIN {i=1}
(i==0) {print $0}($1 != $0 && i==1){i=i-1;print $2}';
;;
esac

Así llamando a las diferentes partes del script puedo obtener la información para conky para poder darle diferente formato obteniendo algo como:


que corresponde a las líneas en el conkyrc:

${color white}${font LCDMono:size=30}${time %H:%M}$font${voffset -10}${font LCDMono:size=16}${time :%S}$font
${voffset 7}${color gold}${execi 60 ~/configuracion/calendario.sh mes}
${color dddddd}${execi 60 ~/configuracion/calendario.sh semana}
${color 888888}${execi 60 ~/configuracion/calendario.sh pasado}${color red}${execi 60 ~/configuracion/calendario.sh hoy}${color 888888}${execi 60 ~/configuracion/calendario.sh futuro}

y en donde uso la fuente LCD Mono para la hora.
Por supuesto esto es un ejemplo de como lo tengo configurado, hay miles de formas de configurarlo.