conky:externí_skripty_a_příkazy

Externí skripty a příkazy pro Conky

Na návodu se stále pracuje

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ů:

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.comkódskutečný název název dle weather.com kódskutečný název
BerounEZXX0001Beroun Lysa Hora EZXX0029Lysá hora
BreclavEZXX0035Břeclav Milesovka EZXX0020Milešovka
BrnoEZXX0002Brno Nachod EZXX0047Náchod
BudweisEZXX0030České Budějovice Olomouc EZXX0038Olomouc
CervenaEZXX0027Červená hora Opava EZXX0008Opava
Cesky TesinEZXX0003Český Těšín Ostrava EZXX0009Ostrava
ChebEZXX0017Cheb Pardubice EZXX0034Pardubice
ChomutovEZXX0044Chomutov Pilsen EZXX0010Plzeň
ChuranovEZXX0019Churáňov Pisek EZXX0011Písek
DormazliceEZXX0040Domažlice Prague EZXX0012Praha
FrydekEZXX0004Frýdek Praha-Libus EZXX0022Praha-Libuš
HodoninEZXX0036Hodonín Pribyslav EZXX0025Přibyslav
HolesovEZXX0028Holešov Primda EZXX0018Přimda
JaromerEZXX0032Jaroměř Prostejov EZXX0049Prostějov
JesenikEZXX0037Jeseník Rosice EZXX0013Rosice
JicinEZXX0031Jičín Slavkov u Brna EZXX0014Slavkov u Brna
Jindrichuv HradecEZXX0039Jindřichův Hradec Strakonice EZXX0042Strakonice
Karlovy VaryEZXX0045Karlovy Hory Sumperk EZXX0048Šumperk
KarvinaEZXX0005Karviná Tabor EZXX0015Tábor
KladnoEZXX0006Kladno Trebic EZXX0033Třebíč
KlatovyEZXX0041Klatovy Trutnov EZXX0046Trutnov
KoceloviceEZXX0021Kocelovice Turnov EZXX0043Turnov
KolinEZXX0007Kolín Usti Nad Orlici EZXX0026Ústí nad Orlicí
Kostelni MyslovaEZXX0024Kostelní Myslová Usti nad Labem EZXX0016Ústí nad Labem
LiberecEZXX0023Liberec
Slovensko
název dle weather.comkódskutečný název název dle weather.com kódskutečný název
Banska StiavnicaLOXX0013Banská Štiavnica Piestany LOXX0008Piešťany
BardejovLOXX0017Bardejov Poprad LOXX0005Poprad
BratislavaLOXX0001Bratislava Prievidza LOXX0011Prievidza
BreznoLOXX0028Brezno Rimavska Sobota LOXX0015Rimavská Sobota
CadcaLOXX0019Čadca Roznava LOXX0014Rožňava
HandlovaLOXX0012Handlová Senec LOXX0006Senec
HumenneLOXX0025Humenné Senica LOXX0020Senica
Ivanka pri DunajiLOXX0002Ivanka pri Dunaji Sliac LOXX0009Sliač
KosiceLOXX0003Košice Snina LOXX0018Snina
LeviceLOXX0022Levice Stropkov LOXX0016Stropkov
LucenecLOXX0024Lučenec Topolcany LOXX0023Topoľčany
MartinLOXX0010Martin Trencin LOXX0027Trenčín
NitraLOXX0021Nitra Trnava LOXX0007Trnava
Nove ZamkyLOXX0004Nové 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.

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.

Použitá soustava jednotek. Možné hodnoty jsou „m“ pro metrickou soustavu a „s“ pro imperiální soustavu.

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:

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“ (parametr m 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}

Odkazy

  • Poslední úprava: 2019/02/25 18:21
  • (upraveno mimo DokuWiki)