====== Externí skripty a příkazy pro Conky ======
{{page>konvence/nedokončený}}
Tento návod popisuje externí skripty a příkazy použitelné v programu [[http://conky.sourceforge.net/|Conky]]. Základní popis tohoto programu najdete [[:Conky|zde]].
{{:important.png}} 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 [[http://xoap.weather.com|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 [[http://www.mythicalireland.com/art/wallpapers/fonts/wef_____.ttf|Weather]].
Stáhněte si skript {{.:weather.pl}}, uložte jej do adresáře "''~/.conky''", a nastavte mu [[Spustitelný příznak|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|
{{:tip.png}} 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.
{{:tip.png}} 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'')
{{.:weather.png}}
===== 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 [[http://www.tampiss.com/rss/tv_online.xml|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|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
{{.:tv_no.png}}
* Varianta s popisem
{{.:tv_yes.png}}
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 [[http://conky.sourceforge.net/variables.html|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
{{.:tv_color3.png}}
{{:warning.png}} Po půlnoci jsou ve zdroji chybně data až pro následující den.
====== Kurzy měn (CZ) ======
{{.:rates.png}}
Skript zobrazuje aktuální kurzy z oficiálního [[http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt|zdroje]] na serveru [[http://www.cnb.cz|Č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|spustitelný příznak]]. V Conky použijte příkaz:
${texeci 3600 ~/.conky/rates.pl}
{{:tip.png}} 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 [[http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt|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''" (parametr ''m'' je pro týden začínající pondělkem):
${font monospace:size=10}${execi 3600 cal -m}$font
{{.:cal1.png}}
* 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
{{.:cal2.png}}
* 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
{{.:cal3.png}}
* 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}
====== Odkazy ======
* [[http://conky.sourceforge.net/|Domácí stránka Conky]]