Microsoft freie Zone!
Auf dieser Seite werde ich in unregelmäßigen Abständen die neusten (und auch eigene) Shell- und Python-Skripte für Conky vorstellen!
ACHTUNG: Zur Erklärung, das Zeichen ⇄ am Ende einer Zeile bedeutet das ich hier einen künstlichen Zeilenumbruch eingefügt habe der im Quellcode nicht vorhanden ist! Weiterhin sollten einige Grundkentnisse in der Shell-Programmierung sowie Python-Kentnisse beim interessierten Leser vorhanden sein.
11.08.2009 - Den Anfang machen wir mit einer Funktion um den aktuellen System-Drucker (wir gehen hier erst mal von einem Drucker aus, und
der ist über USB angeschlossen) den wir von Conky anzeigen lassen, falls verfügbar.
Dazu benutzen wir die Konsolen-Programme >cat, >cut und >grep, sowie eine ${if_existing...} ... ${else} ... ${endif} Konstruktion
von Conky. Das ganze sieht dann so aus:
${if_existing /dev/usb/lp1}Aktueller Drucker: ${execi 300 cat ⇄
/proc/bus/usb/devices | grep -B 4 "Driver=usblp" | grep "Product" ⇄
|cut -d"=" -f2}
${else}Drucker nicht Angemeldet oder Verfügbar!${endif}
Zur Erklärung: im ersten Teilabschnitt wird mit ${if_existing /dev/usb/lp1} geprüft ob ein Drucker vorhanden, also
eingeschaltet und angemeldet ist. Sollte kein Drucker vorhanden ist, gibt es auch kein >/dev/usb/lp1! Dann kommt die letzte Zeile nach
dem ${else} zum Einsatz und sendet die Zeichenkette Drucker nicht Angemeldet oder Verfügbar! mit dem abschliesenden
${endif} an Conky. Danach vergehen dann eben die >300 Sekunden ehe eine neue Abfrage gestartet wird.
Sollte nun doch ein Drucker am USB-Port hängen, kommt die Befehlskette mit ${execi 300...} zur Geltung. Als erstes greifen wir
mit >cat auf die Schnittstelle >/proc/bus/usb/devices zu. Die Ausgabe wird mit einem Pipe-Symbol (|) an >grep weitergeleitet der
nach dem Wert >Driver=usblp darin sucht. Die Angabe >-B 4 bringt >grep dazu, zusätzlich noch die 4 Zeilen vor dem gesuchten Wert auszugeben. Nach
>grep kommt ein weiteres Pipe-Symbol und wir geben die Ausgabe erneut an >grep weiter, der nun nach dem Wort >Product sucht. Wenn er
es gefunden hat, gibt er die Ausgabe wiederum an >cat weiter, der dann mit >-d"=" -f2 alle Zeichen vor dem >= Zeichen Abschneidet und
das Ergebniss an Conky weiterleitet, der dann den Druckernamen und das Modell auf den Bildschirm anzeigt.
20.12.2009 - Hier nun eine neue Art von Kalender. Das ganze wird über ein Shell-Skript verwaltet und sieht am
Ende so aus:

In der obersten Reihe haben wir die Bezeichnung der Wochentage. Darunter folgt nun eine kurze Sequenz von 0-3, damit Markieren wir
die erste Zahl der Tagesnummer. Darunter wiederum befindet sich die Sequenz 0-9, mit diesen Zahlen wird dann die zweite Tageszahl Markiert.
Im Klartext heißt das, ein Datum wie der 18.12.2009 würde in der ersten Reihe den Fr für Freitag Markieren, in der zweiten
Reihe nur die 1 für die 10er Nummern, und in der dritten Reihe eben die 8, für den
achten Dezember (Siehe Bild)! Hier jetzt mal den Code:
#! /bin/bash
COLORTODAY="4876FF"
COLORNUMBER="EE9A00"
DAY="Mo Di Mi Do Fr Sa So"
NUM_FIRST="0 1 2 3"
NUM_SECOND="0 1 2 3 4 5 6 7 8 9"
TODAY=$(date +%a)
NTODAY=$(date +%d)
echo \$\{goto 880}${DAY/${TODAY:0:2}/\$\{color $COLORTODAY\}${TODAY:0:2}⇄
\$\{color\}}
echo \$\{goto 880}${NUM_FIRST/${NTODAY:0:1}/\$\{color⇄
$COLORNUMBER\}${NTODAY:0:1}\$\{color\}}
echo \$\{goto 880}${NUM_SECOND/${NTODAY:1:1}/\$\{color⇄
$COLORNUMBER\}${NTODAY:1:1}\$\{color\}}
Happy Conking!
