Co je to Conky a co umí si můžete přečíst třeba zde, nebo zde. Osobně oceňuji naprostou konfigurovatelnost, nízké systémové nároky a možnost jedním pohledem zkontrolovat stav a vytíženost celého systému. Conky je slušně vybaven pro spolupráci s externími skripty, takže jeho možnosti víceméně závisí na vašich schopnostech a fantazii. Na webu je toho spousta, pěkná sbírka nápadů je na ubuntu fóru. Některé z nich jsem upravil a použil, pár jsem si jich napsal sám, třeba se někomu budou hodit:
Detekce disku v CD/DVD mechanice
Dynamické zobrazování informací o výměnných discích
Automatický restart Conky po pádu
Klikněte na obrázek pro zobrazení použitých objektů.
Detekce disku v CD/DVD mechanice
Celkem dlouho mi trvalo než jsem našel způsob, jak zjistit z command lajny obsah šuplíku mé optické mechaniky a nakonec jsem našel starý, leč funkční a vyhovující program CDCTL, který umí, mimo jiné, zjistit, co konkrétně se v mechanice nachází, či nenachází. Program je potřeba ručně zkompilovat, ale při překladu mi hlásil chybu. Zakomentoval jsem tedy problematický řádek, na který se kompilátor odvolával a pak již překlad proběhl bez komplikací. Pokud ví někdo o jednodušší metodě, jak zjistit obsah mechaniky, budu rád za tip, nepochybuji, že jsem jen zatím nenašel. CDCTL mi tedy zjistí typ disku a pokud je to disk datový, přečtu název disku příkazem isoinfo.
cdrom-detect.sh#!/bin/bash
a=`cdctl -g`
case $a in
*audio* ) echo "Audio CD"; exit ;;
*mixed* ) echo "mixed-mode disc"; exit ;;
*"no disc"* ) echo "no disc"; exit ;;
*"no info"* ) echo "blank disk?"; exit ;;
esac
isoinfo -d -i /dev/cdrom | awk -F": " '/Volume id/{print $2}'
a=`cdctl -g`
case $a in
*audio* ) echo "Audio CD"; exit ;;
*mixed* ) echo "mixed-mode disc"; exit ;;
*"no disc"* ) echo "no disc"; exit ;;
*"no info"* ) echo "blank disk?"; exit ;;
esac
isoinfo -d -i /dev/cdrom | awk -F": " '/Volume id/{print $2}'
Dynamické zobrazování informací o výměnných discích
Dynamické zobrazování připojených disků řeším pomocí výpisu obsahu složky /media, kam Ubuntu připojuje disky a vytváří přístupové body s jejich jmény. Ze seznamu odstraním trvale připojené disky a optickou mechaniku, které monitoruji z Conky přímo. Pro větší univerzálnost kódu bych takto mohl vypsat všechny disky, ale takhle mám trvale připojené disky seřazené podle sebe a libovolně pojmenované, protože skript jako jméno monitorovaného diskového oddílu použije jméno přípojného bodu ve složce /media a disky z fstab by se v mém případě nepřehledně jmenovaly sda1, sda2,.. (ano, šlo by to změnit) a výměnné disky si barevně odliším pro větší přehlednost. Pro nedostatek místa ještě zkrátím delší názvy, aby se vešly k ostatním parametrům. Výstup skriptu obsahuje i formátovací značky, které Conky při volání scriptu pomocí execp, nebo execpi provede. Tedy v Conky budeme skript volat třeba tímto ${execpi 2 ~/.conky/removable-drives.sh}. Připojené disky jsou řazeny abecedně.
Ještě bych mohl zmínit, že při připojení disku se Conky vertikálně roztáhne a má tendenci se posunout celé. Já jsem chtěl, aby byl spodní konec pevný a okno expandovalo směrem nahoru, čehož jsem dosáhl nastavením parametru alignment na middle_right (nebo middle_left) a přesnou pozici doladil parametrem gap_y.
removable-drives.shJeště bych mohl zmínit, že při připojení disku se Conky vertikálně roztáhne a má tendenci se posunout celé. Já jsem chtěl, aby byl spodní konec pevný a okno expandovalo směrem nahoru, čehož jsem dosáhl nastavením parametru alignment na middle_right (nebo middle_left) a přesnou pozici doladil parametrem gap_y.
#!/bin/bash
list=`ls -1 /media/|sed -e 's/cdrom0//' -e 's/cdrom//' -e 's/sda1//' -e 's/sda2//' -e 's/sda4//' -e 's/sdb1//'|sed '/^$/d'`
if [ "$list" ]; then {
echo "$list" | while read line
do name="${line:0:7}"
echo '${color 030}${fs_bar 14,309 /media/'$line'}${color}
${goto 12}${voffset -21}$font'$name'${goto 70}${fs_type /media/'$line'}${goto 125}${fs_size /media/'$line'}${goto 190}${fs_free_perc /media/'$line'}%${goto 230}${fs_free /media/'$line'}${voffset 1}'
done }
else {
echo '${voffset -3}'
exit
}
fi
echo '${voffset -5}'
list=`ls -1 /media/|sed -e 's/cdrom0//' -e 's/cdrom//' -e 's/sda1//' -e 's/sda2//' -e 's/sda4//' -e 's/sdb1//'|sed '/^$/d'`
if [ "$list" ]; then {
echo "$list" | while read line
do name="${line:0:7}"
echo '${color 030}${fs_bar 14,309 /media/'$line'}${color}
${goto 12}${voffset -21}$font'$name'${goto 70}${fs_type /media/'$line'}${goto 125}${fs_size /media/'$line'}${goto 190}${fs_free_perc /media/'$line'}%${goto 230}${fs_free /media/'$line'}${voffset 1}'
done }
else {
echo '${voffset -3}'
exit
}
fi
echo '${voffset -5}'
Vše, co je zelenou barvou je kód pro Conky, do kterého pouze vkládáme v proměnné $line označení příslušného disku. Tedy toto formátování si každý musí přepsat, aby mu vyhovovalo pro jeho účely. Zrovna tak na začátku skriptu si každý definuje pouze disky, které chce z automatiky vyřadit.
Automatický restart Conky po pádu
Pády se dějí především při intenzivnějším připojování a odpojování disků, což samzřejmě souvisí s použitím mého předešlého skriptu. Nevím, co přesně to způsobuje, ale Conky se vymlouvá na to, že používám příliš mnoho fontů. V běžném provozu se to děje jen výjimečně a pokud už se to stane, script spustí Conky okamžitě znovu, takže přijdete jen o předchozí průběhy grafů. Následující skript funguje pro start i ukončení, tedy pokud zjistí, že Conky už běží, naopak je ukončí. Zde je nutno podotknout, že skript počítá jen s jednou instancí Conky.
conky-launcher.sh#!/bin/bash
if [ `pidof conky` ] ; then
killall conky
killall conky_launcher.sh
exit
fi
while [ true ]
do
if [ ! `pidof conky` ] ; then sleep 0.5
conky
fi
echo Restarting Conky....
done
if [ `pidof conky` ] ; then
killall conky
killall conky_launcher.sh
exit
fi
while [ true ]
do
if [ ! `pidof conky` ] ; then sleep 0.5
conky
fi
echo Restarting Conky....
done
Další skripty, které používám, kliknutím stáhnete:
Kontrola novývh zpráv na Gmail. Nutno si do skriptu dopsat jméno a heslo.
A vlastní .conkyrc. Je psaný na můj hardware, nebude bez úprav fungovat všude stejně.
Užitečné odkazy:
http://conky.sourceforge.net/documentation.html
Užitečné odkazy:
http://conky.sourceforge.net/documentation.html
V úvodu článku máš screen conky, nemáš k němu i konfig. soubor?
OdpovědětVymazatVšechno je v článku, na konci máš odkaz i na .conkyrc
OdpovědětVymazatAhoj...
OdpovědětVymazatMoc hezky vymyšlené, a zpracované.
Podstatnou část skriptů jsem po úpravě použil na svém domácím PC s Mandriva Linuxem a KDE.
Dík... Jirka
Ahoj a díky za komentář, jsem rád že se Ti to hodilo.
OdpovědětVymazatNazdar,
OdpovědětVymazatprosim tě, co napsat pro ukázání těch info o GK, když mám ATI?
Díky za odpověď.
To bohužel neporadím, zatím jsem to neřešil.
OdpovědětVymazat