Externí skripty a příkazy pro Conky
Tento návod popisuje externí skripty a příkazy použitelné v programu Conky. Základní popis tohoto programu najdete zde.
Náročnější skripty je třeba pouštět ve vlastním vlákně pomocí příkazu texeci
. Při použití běžného execi
čeká Conky se zobrazením na dokončení skriptu. To způsobuje nepříjemné problikávání nebo mizení Conky. Vadí to obzvláště u skriptů, které stahují data, neboť i stahování malých souborů může být zdlouhavé kvůli jinému souběžnému stahování.
Počasí (CZ/SK/EN)
Tento skript zobrazuje informace o počasí podle serveru xoap.weather.com.
Skript vyžaduje Conky 1.5.0 či vyšší a nainstalovaný balík libxml-simple-perl
. K zobrazení ikonek je dále nutné nainstalovat font Weather.
Stáhněte si skript weather.pl, uložte jej do adresáře „~/.conky
“, a nastavte mu spustitelný příznak.
Použití v Conky je následující:
${texeci 360 ~/.conky/weather.pl Prague cz m ~/.conky/weather.template ~/.conky/weather.conky} ${execpi 247 cat ~/.conky/weather.conky}
Skript weather.pl má pět parametrů:
Parametr č. 1: kód místa
Kód místa, ke kterému se vztahují informace o počasí. Svůj kód si vyberte v následující tabulce:
Česká republika | |||||||
název dle weather.com | kód | skutečný název | název dle weather.com | kód | skutečný název | ||
Beroun | EZXX0001 | Beroun | Lysa Hora | EZXX0029 | Lysá hora | ||
Breclav | EZXX0035 | Břeclav | Milesovka | EZXX0020 | Milešovka | ||
Brno | EZXX0002 | Brno | Nachod | EZXX0047 | Náchod | ||
Budweis | EZXX0030 | České Budějovice | Olomouc | EZXX0038 | Olomouc | ||
Cervena | EZXX0027 | Červená hora | Opava | EZXX0008 | Opava | ||
Cesky Tesin | EZXX0003 | Český Těšín | Ostrava | EZXX0009 | Ostrava | ||
Cheb | EZXX0017 | Cheb | Pardubice | EZXX0034 | Pardubice | ||
Chomutov | EZXX0044 | Chomutov | Pilsen | EZXX0010 | Plzeň | ||
Churanov | EZXX0019 | Churáňov | Pisek | EZXX0011 | Písek | ||
Dormazlice | EZXX0040 | Domažlice | Prague | EZXX0012 | Praha | ||
Frydek | EZXX0004 | Frýdek | Praha-Libus | EZXX0022 | Praha-Libuš | ||
Hodonin | EZXX0036 | Hodonín | Pribyslav | EZXX0025 | Přibyslav | ||
Holesov | EZXX0028 | Holešov | Primda | EZXX0018 | Přimda | ||
Jaromer | EZXX0032 | Jaroměř | Prostejov | EZXX0049 | Prostějov | ||
Jesenik | EZXX0037 | Jeseník | Rosice | EZXX0013 | Rosice | ||
Jicin | EZXX0031 | Jičín | Slavkov u Brna | EZXX0014 | Slavkov u Brna | ||
Jindrichuv Hradec | EZXX0039 | Jindřichův Hradec | Strakonice | EZXX0042 | Strakonice | ||
Karlovy Vary | EZXX0045 | Karlovy Hory | Sumperk | EZXX0048 | Šumperk | ||
Karvina | EZXX0005 | Karviná | Tabor | EZXX0015 | Tábor | ||
Kladno | EZXX0006 | Kladno | Trebic | EZXX0033 | Třebíč | ||
Klatovy | EZXX0041 | Klatovy | Trutnov | EZXX0046 | Trutnov | ||
Kocelovice | EZXX0021 | Kocelovice | Turnov | EZXX0043 | Turnov | ||
Kolin | EZXX0007 | Kolín | Usti Nad Orlici | EZXX0026 | Ústí nad Orlicí | ||
Kostelni Myslova | EZXX0024 | Kostelní Myslová | Usti nad Labem | EZXX0016 | Ústí nad Labem | ||
Liberec | EZXX0023 | Liberec |
Slovensko | ||||||
název dle weather.com | kód | skutečný název | název dle weather.com | kód | skutečný název | |
Banska Stiavnica | LOXX0013 | Banská Štiavnica | Piestany | LOXX0008 | Piešťany | |
Bardejov | LOXX0017 | Bardejov | Poprad | LOXX0005 | Poprad | |
Bratislava | LOXX0001 | Bratislava | Prievidza | LOXX0011 | Prievidza | |
Brezno | LOXX0028 | Brezno | Rimavska Sobota | LOXX0015 | Rimavská Sobota | |
Cadca | LOXX0019 | Čadca | Roznava | LOXX0014 | Rožňava | |
Handlova | LOXX0012 | Handlová | Senec | LOXX0006 | Senec | |
Humenne | LOXX0025 | Humenné | Senica | LOXX0020 | Senica | |
Ivanka pri Dunaji | LOXX0002 | Ivanka pri Dunaji | Sliac | LOXX0009 | Sliač | |
Kosice | LOXX0003 | Košice | Snina | LOXX0018 | Snina | |
Levice | LOXX0022 | Levice | Stropkov | LOXX0016 | Stropkov | |
Lucenec | LOXX0024 | Lučenec | Topolcany | LOXX0023 | Topoľčany | |
Martin | LOXX0010 | Martin | Trencin | LOXX0027 | Trenčín | |
Nitra | LOXX0021 | Nitra | Trnava | LOXX0007 | Trnava | |
Nove Zamky | LOXX0004 | Nové Zámky | Zilina | LOXX0026 | Žilina |
Další kódy můžete najít na adrese http://xoap.weather.com/search/search?where=Prague, kde Prague
nahradíte vaší polohou. Tabulka by však měla obsahovat všechny možnosti pro Českou republiku i Slovensko.
Místo kódu můžete použít i název dle prvního sloupce tabulky.
Parametr č. 2: jazyk
Jazyk, ve kterém má být výstup. Možné hodnoty jsou „cz
“ pro češtinu, „sk
“ pro slovenštinu a „en
“ pro angličtinu.
Parametr č. 3: soustava jednotek
Použitá soustava jednotek. Možné hodnoty jsou „m
“ pro metrickou soustavu a „s
“ pro imperiální soustavu.
Parametr č. 4: šablona
Soubor se šablonou, která určuje podobu výstupu. Šablona má stejnou syntaxi jako konfigurační soubor pro Conky, navíc ale můžete použít nové příkazy vztahující se k počasí. Jednotlivé příkazy naleznete v nápovědě ve skriptu.
Příklady šablon:
- weather.template (vyžaduje font
Weather
)
Parametr č. 5: soubor pro výstup
Soubor, do kterého se ukládá výstup.
Televizní program (CZ)
Tento skript zobrazuje právě vysílané pořady na ČT1, ČT2, Nově a Primě, tak jak jsou popsány v tomto zdroji. Data víceméně odpovídají programu z televizních magazínů.
Stáhněte si skript tv.pl, uložte jej do adresáře „~/.conky
“, a nastavte mu spustitelný příznak. V Conky použijte příkaz:
${texeci 300 ~/.conky/tv.pl 4 49 yes}
Pochopitelně můžete změnit použité parametry skriptu. První parametr je velikost odsazení a druhý parametr je počet znaků pro zalomení řádku. Odsazení i zalomení se týká jen názvů a popisů pořadů. Poslední parametr určuje, zda má být zobrazen podrobný popis programů – „yes
“ pro zobrazení a „no
“ pro vynechání popisu.
- Varianta bez popisu
- Varianta s popisem
Od verze 1.5.0 umožňuje Conky parsovat výstup skriptu. To umožňuje změnit pro zpřehlednění barvu popisu na ColorX
(viz popis proměnných v Conky), stačí jako poslední parametr uvést colorX (malá písmena!). V Conky je ale nutné použít jiný postup:
${execpi 60 cat ~/.conky/tv.conky}${texeci 300 ~/.conky/tv.pl 4 49 color3 > ~/.conky/tv.conky}
- Varianta s barevně odlišeným popisem
Po půlnoci jsou ve zdroji chybně data až pro následující den.
Kurzy měn (CZ)
Skript zobrazuje aktuální kurzy z oficiálního zdroje na serveru ČNB, který je aktualizován každý den, kdy se obchoduje na burze, krátce po 14:00.
Stáhněte si skript rates.pl, uložte jej do adresáře „~/.conky
“, a nastavte mu spustitelný příznak. V Conky použijte příkaz:
${texeci 3600 ~/.conky/rates.pl}
Výstup skriptu si můžete lehce upravit, stačí změnit následující část skriptu:
print sprintf("%d", $rlDay).". ".sprintf("%d", $rlMonth).". ".$rlYear." \$ ".rate("USD")." Kč, € ".rate("EUR")." Kč\n";
Funkce rate
vrací kurz měny s daným kódem. Další měny i jejich kódy najdete ve zdroji.
Kalendář
Ke správnému zobrazení kalendáře je potřeba některý font s pevnou šířkou, např. monospace
.
- Nejjednudušší možností je zavolat přímo systémový příkaz „
cal -m
“ (parametrm
je pro týden začínající pondělkem):
${font monospace:size=10}${execi 3600 cal -m}$font
- Následující složitější příkaz vyřeší problémy se zarovnáním doleva, navíc zvýrazní dnešní datum:
${font monospace:size=10}${execi 3600 cal -m | awk 'NR>1' | sed -e 's/ / /g' -e 's/[^ ] /& /g' -e 's/..*/ & /' -e 's/ \('`date | awk '{print $3}'`'\) /\['`date | awk '{print $3}'`'\]/'}$font
- Od verze 1.5.0 je v Conky možné zvýraznit dnešní datum barevně:
${font monospace:size=10}${execpi 3600 cal -m | awk 'NR>1' | sed -e 's/ / /g' -e 's/[^ ] /& /g' -e 's/..*/ & /' -e 's/ \('`date | awk '{print $3}'`'\) /\ $\{color blue\}'`date | awk '{print $3}'`'\$color /'}$font
- V Ubuntu 10.04 takto nastavený kalendář nefunguje. U příkazu „cal“ je potřeba smazat parametr „-m“. Příkaz nyní vypadá takto:
${font monospace:size=10}${execpi 3600 cal | awk 'NR>1' | sed -e 's/ / /g' -e 's/[^ ] /& /g' -e 's/..*/ & /' -e 's/ \('`date | awk '{print $3}'`'\) /\ $\{color blue\}'`date | awk '{print $3}'`'\$color /'}$font
Zobrazení obsahu schránky
K práci se schránkou je třeba nainstalovat balík xsel
. Obsah schránky zobrazíte v Conky příkazem:
${execi 10 xsel -b}
a výběr myší příkazem:
${execi 10 xsel}