Portál AbcLinuxu, 4. července 2025 12:23
Conky je výborný nástroj na monitorování svého operačního systému nebo čehokoliv jiného. Dnes si ukážeme, jak do Conky přidat výpis kurzu měn.
Nejprve si vytvoříme pythonovský skript, který načte kurzy měn z webu ČNB a vrátí výstup, kterému bude Conky rozumět.
#!/usr/bin/env python
import urllib
countries = ('EMU', 'USA')
url = 'http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt'
fp = urllib.urlopen(url)
lines = fp.readlines()
fp.close()
for line in lines:
parts = line.split('|')
if parts[0] in countries:
print parts[3] + ': ${alignr}' + parts[4].rstrip()
Tento skript uložíme například do souboru /usr/bin/conky-currency a dáme mu právo spuštění pro všechny.
Nyní již pouze změníme konfiguraci Conky, aby informace ze skriptu použilo. Na konec souboru ~/.conkyrc vložíme tyto řádky:
CURRENCIES ${hr 2}
${execpi 36000 conky-currency}
Připojený obrázek obsahuje také úpravy z tohoto návodu.
Skript z pohledu výkonnosti a paměťové náročnosti rozhodně není ideální. Je napsán tak, aby byl snadno čitelný.
Tiskni
Sdílej:
Stacilo by to stahnout jednou denne zhruba ve 14.45 jindy kurzy CNB neaktualizuje, nemluve o tom ze treba o videndu se nemusi zmenit vubec ;)
Není
...jednou denne zhruba ve 14.45 jindy kurzy CNB neaktualizuje...
a
Mozna by bylo dokonce lepsi snizit to na 5 hodin, aby uzivatel nemel moc stare informace.
v rozporu?
preco sa to neriesi cronom? som lama, iba sa pytam.
Copak? Obchoduješ na burze nebo jsi jenom posedlý monitorováním
http://www.google.com/finance?q=EURCZK případně třeba
http://www.google.com/finance?q=USDCZK mi plně vyhovuje.
Prosim, bylo by mozne zverejnit kompletni konfigurak Conky z toho obrazku? Diky...
use_xft yes
xftfont Liberation Sans:size=8
update_interval 1
total_run_times 0
double_buffer yes
text_buffer_size 1024
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
minimum_size 185 0
maximum_width 185
default_color white
draw_shades no
color0 white
color1 729FCF
color2 white
alignment top_right
gap_x 25
gap_y 50
no_buffers no
net_avg_samples 2
override_utf8_locale yes
TEXT
SYSTEM ${hr 2}
${voffset 2}${color0}${font OpenLogos:size=16}u${font}${color} Kernel: ${alignr}${color2}${kernel}${color}
${color0}${font StyleBats:size=16}A${font}${color} CPU1: ${color1}${cpu cpu1}%${color} ${alignr}${color2}${cpubar cpu1 8,60}${color}
${color0}${font StyleBats:size=16}A${font}${color} CPU2: ${color1}${cpu cpu2}%${color} ${alignr}${color2}${cpubar cpu2 8,60}${color}
${color0}${font StyleBats:size=16}g${font}${color} RAM: ${color1}$memperc%${color} ${alignr}${color2}${membar 8,60}${color}
${color0}${font StyleBats:size=16}j${font}${color} SWAP: ${color1}$swapperc%${color} ${alignr}${color2}${swapbar 8,60}${color}
${color0}${font StyleBats:size=16}q${font}${color} Uptime: ${alignr}${color2}${uptime}${color}
DATE ${hr 2}
${alignc 45}${color2}${font Arial Black:size=30}${time %H:%M}${font}${color}
${alignc}${time %A %d %Y}
HD ${hr 2}
${execp ~/.scripts/hd_default.py}
NETWORK ${hr 2}
${if_existing /proc/net/route wlan0}
${voffset -6}${color0}${font PizzaDude Bullets:size=14}O${font}${color} Up: ${color1}${upspeed wlan0}${color} kb/s ${alignr}${upspeedgraph wlan0 8,60 346Rhythmbox not running}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}U${font}${color} Down: ${color1}${downspeed wlan0}${color} kb/s ${alignr}${downspeedgraph wlan0 8,60 346Rhythmbox not running}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}N${font}${color} Upload: ${alignr}${totalup wlan0}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}T${font}${color} Download: ${alignr}${totaldown wlan0}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}Z${font}${color} Signal: ${wireless_link_qual wlan0}% ${alignr}${color2}${wireless_link_bar 8,60 wlan0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}a${font}${color} Local ip: ${alignr}${color2}${addr wlan0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}b${font}${color} Public ip: ${alignr}${color2}${execi 1 ~/.scripts/ip.sh}${color}
${else}${if_existing /proc/net/route eth0}
${voffset -6}${color0}${font PizzaDude Bullets:size=14}O${font}${color} Up: ${color1}${upspeed eth0}${color} kb/s ${alignr}${upspeedgraph eth0 8,60 346Rhythmbox not running}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}U${font}${color} Down: ${color1}${downspeed eth0}${color} kb/s ${alignr}${downspeedgraph eth0 8,60 346Rhythmbox not running}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}N${font}${color} Upload: ${alignr}${color2}${totalup eth0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}T${font}${color} Download: ${alignr}${color2}${totaldown eth0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}a${font}${color} Local ip: ${alignr}${color2}${addr eth0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}b${font}${color} Public ip: ${alignr}${color2}${execi 1 ~/.scripts/ip.sh}${color}
${endif}${else}${if_existing /proc/net/route ppp0}
${voffset -6}${color0}${font PizzaDude Bullets:size=14}O${font}${color} Up: ${color1}${upspeed ppp0}${color} kb/s ${alignr}${upspeedgraph ppp0 8,60 346Rhythmbox not running}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}U${font}${color} Down: ${color1}${downspeed ppp0}${color} kb/s ${alignr}${downspeedgraph ppp0 8,60 346Rhythmbox not running}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}N${font}${color} Upload: ${alignr}${color2}${totalup ppp0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}T${font}${color} Download: ${alignr}${color2}${totaldown ppp0}${color}
${voffset 4}${color0}${font PizzaDude Bullets:size=14}a${font}${color} Local ip: ${alignr}${color2}${addr ppp0}${color}
${endif}${else}${voffset 4}${color0}${font PizzaDude Bullets:size=12}4${font}${color} Network Unavailable
${endif}
WEATHER ${hr 2}
${if_existing /proc/net/route wlan0}
${execpi 10800 conkyForecast -t ~/.scripts/conkyForecast.template}
${else}${if_existing /proc/net/route eth0}
${execpi 10800 conkyForecast -t ~/.scripts/conkyForecast.template}
${endif}${else}${if_existing /proc/net/route ppp0}
${execpi 10800 conkyForecast -t ~/.scripts/conkyForecast.template}
${endif}${else}${voffset 4}${color0}${font PizzaDude Bullets:size=12}4${font}${color} Weather Unavailable${endif}
CURRENCIES ${hr 2}
${execpi 36000 /home/dundee/workspace/python/conky-currency.py}
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.