- Home
- Welcome
- Bienvenido
- Benvenuto
- Bienvenue
- Gallery
- 2009
- By: Bruce
- By: Uncertain
- By: steelcap
- By: Crinos512
- By: Jameshardy88
- By: Delvien
- By: londonali1010
- By: dmillerct
- By: Scarf
- By: Craig Watson
- By: AoSteve
- By: micheal.h4lios
- By: deegan
- By: arpinux
- By: Sarai the Geek
- By: puma303
- By: LostDakota
- BY: aymara
- By: searchOne
- By: 5BallJuggler
- By: proxess
- By: Hanna
- By: Proto
- By: mrpeachy
- By: miegiel
- 2010
- 2009
OK, this I’ve been using for a little while now, but starting a few days ago it’s undergone quite a few changes. So It’s time this script is recognized for what it is – a GREAT – two line horizontal calendar.
My version looks like this:
Yes, you are reading that correctly, Feb 10, 2010 and it’s only Dec 2009. I was testing for the width and the fact it would show days beyond the 28 days in Feb.
The script was originally created by: ans – Thank you who ever you are. and searchOne did some work on it to get it to display to the 31st day always. It had problems and mobilediesel and dk75 went to work on it.
dk75 came up with language codes for the day names which is really a nice touch. My system is in English but I want the day names in Spanish for my wife, yes, I can read them as well.
It’s been edited, changed, cut apart and pasted together and then along come our friend, Crinos512 with itchy fingers. You have to like a guy that pops in with:
OK you guys are having WAY too much fun with this for me to resist.
I took the last one and made a few… ok, a lot of changes.
.. added comments.
.. rolled the english weekdays in with the other languages for consistancy.
.. replaced a few ‘if’ statements with ‘case’.
.. reorginized the code to reflect the logic. (because I like it like that)
.. removed some unused code.
.. closed the ${color xxxxxx} statements in the day row.
.. excluded “NEXTMONTH” from displaying ${color xxxxxx} statements if the current month is 31 days long.
So here’s that version.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | #!/bin/bash # horizontal calendar for conky by ans # Updated by: mobilediesel, dk75, Bruce, Crinos512, et al. # locale depend week day names lang=$1 case ${lang:=$LANG} in en* ) Sun="Su"; Mon="Mo"; Tue="Tu"; Wed="We"; Thu="Th"; Fri="Fr"; Sat="Sa" ;; # English (English) af* ) Sun="So"; Mon="Ma"; Tue="Di"; Wed="Wo"; Thu="Do"; Fri="Vr"; Sat="Sa" ;; # Afrikaans (Afrikaans) be* ) Sun="Ня"; Mon="Па"; Tue="Аў"; Wed="Се"; Thu="Ча"; Fri="Пя"; Sat="Су" ;; # Belarusian (Беларуская) x bg* ) Sun="Не"; Mon="По"; Tue="Вт"; Wed="Ср"; Thu="Че"; Fri="Пе"; Sat="Съ" ;; # Bulgarian (Български) x bs* ) Sun="Ne"; Mon="Po"; Tue="Ut"; Wed="Sr"; Thu="Če"; Fri="Pe"; Sat="Su" ;; # Bosnian (Bosanac) cs* ) Sun="Ne"; Mon="Po"; Tue="Út"; Wed="St"; Thu="Čt"; Fri="Pá"; Sat="So" ;; # Czech (Čeština) da* ) Sun="Sø"; Mon="Ma"; Tue="Ti"; Wed="On"; Thu="To"; Fri="Fr"; Sat="Lø" ;; # Danish (Dánština) 6 de* ) Sun="So"; Mon="Mo"; Tue="Di"; Wed="Mi"; Thu="Do"; Fri="Fr"; Sat="Sa" ;; # German (Deutche) el* ) Sun="Κυ"; Mon="Δε"; Tue="Τρ"; Wed="Τε"; Thu="Πέ"; Fri="Πα"; Sat="Σά" ;; # Greek (Ελληνικά) x es* ) Sun="Do"; Mon="Lu"; Tue="Ma"; Wed="Mi"; Thu="Ju"; Fri="Vi"; Sat="Sá" ;; # Spanish (Español) et* ) Sun="Pü"; Mon="Es"; Tue="Te"; Wed="Ko"; Thu="Ne"; Fri="Re"; Sat="La" ;; # Estonian (Eesti) tl* ) Sun="Li"; Mon="Lu"; Tue="Ma"; Wed="Mi"; Thu="Hu"; Fri="Bi"; Sat="Sa" ;; # Philippine (Filipino) fi* ) Sun="Su"; Mon="Ma"; Tue="Ti"; Wed="Ke"; Thu="To"; Fri="Pe"; Sat="La" ;; # Finnish (Suomen) 12 fr* ) Sun="Di"; Mon="Lu"; Tue="Ma"; Wed="Me"; Thu="Je"; Fri="Ve"; Sat="Sa" ;; # French (Français) gl* ) Sun="Do"; Mon="Lu"; Tue="Ma"; Wed="Mé"; Thu="Xo"; Fri="Ve"; Sat="Sá" ;; # Galician (Galego) hr* ) Sun="Ne"; Mon="Po"; Tue="Ut"; Wed="Ut"; Thu="Sr"; Fri="Če"; Sat="Su" ;; # Croatian (Hrvatska) hu* ) Sun="Va"; Mon="Hé"; Tue="Ke"; Wed="Se"; Thu="Cü"; Fri="Pé"; Sat="So" ;; # Hungarian (Magyar) id* ) Sun="Mi"; Mon="Se"; Tue="Se"; Wed="Ra"; Thu="Ka"; Fri="Ju"; Sat="Sa" ;; # Indonesian (Indonesia) is* ) Sun="Su"; Mon="Má"; Tue="Þr"; Wed="Mi"; Thu="Fi"; Fri="Fö"; Sat="La" ;; # Icelandic (Íslenska) 18 it* ) Sun="Do"; Mon="Lu"; Tue="Ma"; Wed="Me"; Thu="Gi"; Fri="Ve"; Sat="Sa" ;; # Italian (Italiano) ja* ) Sun="日曜"; Mon="月曜"; Tue="火曜"; Wed="水曜"; Thu="木曜"; Fri="金曜"; Sat="土曜";; # Japanese (日本語) x ko* ) Sun="일요"; Mon="월요"; Tue="화요"; Wed="수요"; Thu="목요"; Fri="금요"; Sat="토요";; # Korean (한국어) x lt* ) Sun="se"; Mon="pi"; Tue="an"; Wed="tr"; Thu="ke"; Fri="pe"; Sat="še" ;; # Lithuanian (Lietuviškai) lv* ) Sun="Sv"; Mon="Pr"; Tue="Ot"; Wed="Tr"; Thu="Ce"; Fri="Pe"; Sat="Se" ;; # Latvian (Latviešu) mk* ) Sun="Не"; Mon="По"; Tue="Вт"; Wed="Ср"; Thu="Че"; Fri="Пе"; Sat="Са" ;; # Macedonian (Македонски) 24 x ml* ) Sun="Mi"; Mon="Is"; Tue="Se"; Wed="Ra"; Thu="Ra"; Fri="Ju"; Sat="Sa" ;; # Malay (Bahasa Melayu) nb* ) Sun="sø"; Mon="ma"; Tue="ti"; Wed="on"; Thu="to"; Fri="fr"; Sat="lø" ;; # Norwegian (Norsk) nl* ) Sun="Zo"; Mon="Ma"; Tue="Di"; Wed="Wo"; Thu="Do"; Fri="Vr"; Sat="Za" ;; # Dutch (Nederlandse) pl* ) Sun="Nd"; Mon="Po"; Tue="Wt"; Wed="Śr"; Thu="Cz"; Fri="Pt"; Sat="So" ;; # Polish (Polska) pt* ) Sun="Do"; Mon="Sq"; Tue="Te"; Wed="Qa"; Thu="Qi"; Fri="Se"; Sat="Sá" ;; # Portuguese (Português) ro* ) Sun="Du"; Mon="Lu"; Tue="Ma"; Wed="Mi"; Thu="Jo"; Fri="Vi"; Sat="Sa" ;; # Romanian (Român) 30 ru* ) Sun="Во"; Mon="По"; Tue="Вт"; Wed="Ср"; Thu="Че"; Fri="Пя"; Sat="Су" ;; # Russian (Русский) x sk* ) Sun="Ne"; Mon="Po"; Tue="Ut"; Wed="St"; Thu="Št"; Fri="Pi"; Sat="So" ;; # Slovak (Slovenčina) sl* ) Sun="Ne"; Mon="Po"; Tue="To"; Wed="Sr"; Thu="Če"; Fri="Pe"; Sat="So" ;; # Slovenian (Slovenski) sr* ) Sun="Ne"; Mon="Po"; Tue="Ut"; Wed="Sr"; Thu="Če"; Fri="Pe"; Sat="Su" ;; # Serbian (Српски) sv* ) Sun="Sö"; Mon="Må"; Tue="Ti"; Wed="On"; Thu="To"; Fri="Fr"; Sat="Lö" ;; # Swedish (Svenska) tr* ) Sun="Pa"; Mon="Pa"; Tue="Sa"; Wed="Ça"; Thu="Pe"; Fri="Cu"; Sat="Cu" ;; # Turkish (Türkçe) 36 uk* ) Sun="Не"; Mon="По"; Tue="Ві"; Wed="Се"; Thu="Че"; Fri="П'"; Sat="Су" ;; # Ukrainian (Українська) x esac COLOROLD="445566" #MidSlateGrey COLORTODAY="FF8C00" #Darkorange COLORREST="445566" #MidSlateGrey COLORNEXT="778899" #LightSlateGrey TODAY=$(date +%d) LASTDAY=$(date -d "-$TODAY days +1 month" +%d) FIRSTDAY=$(date -d "-$[${TODAY/#0/}-1] days" +%u) TODAYC="\${color $COLORTODAY} $TODAY\${color}" # Build $TOPLINE j=31 k=$FIRSTDAY while [ $j -gt 0 ]; do case "$k" in 1) TOPLINE="$TOPLINE $Mon";; 2) TOPLINE="$TOPLINE $Tue";; 3) TOPLINE="$TOPLINE $Wed";; 4) TOPLINE="$TOPLINE $Thu";; 5) TOPLINE="$TOPLINE $Fri";; 6) TOPLINE="$TOPLINE \${color FF8C00}$Sat\${color}";; 7) TOPLINE="$TOPLINE \${color FFFF00}$Sun\${color}" k=0 ;; esac j=$[$j-1] k=$[$k+1] done # Build $OVER i=1 OVER="\${color $COLOROLD}" while [ $i -lt $TODAY ]; do case $i in [1-9]) OVER="$OVER 0$i" ;; *) OVER="$OVER $i" ;; esac i=$[$i+1] done OVER="$OVER\${color}" # skip i where value of i=$TODAY i=$[$i+1] # Build $REST REST="\${color $COLORREST}" while [ $i -le $LASTDAY ]; do case $i in [1-9]) REST="$REST 0$i" ;; *) REST="$REST $i" ;; esac i=$[$i+1] done REST="$REST\${color}" # Build $NEXTMONTH i=$LASTDAY j=1 NEXTMONTH="" if [ $i -ne 31 ] ; then NEXTMONTH="\${color $COLORNEXT}" while [ $i -lt 31 ] ; do NEXTMONTH="$NEXTMONTH 0$j" i=$[$i+1] j=$[$j+1] done NEXTMONTH="$NEXTMONTH\${color}" fi echo "\${goto 240}$TOPLINE\${tab 20}" echo "\${goto 240}$OVER$TODAYC$REST$NEXTMONTH\${tab 20}" |
My working copy can be seen here just under Niagara Falls at night.
Kudos to ans, mobilediesel, dk75 & Crinos512 for a job well done.