5 апр. 2012 г.

Как показать прогноз погоды в conky

Как ни зайдешь на какой-нибудь сайт, где все подряд занимаются дизайном и украшательством своих рабочих столов, так постоянно видишь красивые календарики, часики, какие-то датчики и прогнозы погоды. Что мы хуже? Тоже забабахаем себе прогноз с блэкджэком и шлюхами! Поднатужимся и сделаем нечто похожее на картинку снизу

Что нам надо:
Первое что нам необходимо - сам conky
sudo apt-get install conky
Далее необходимо установить Conky Weather Forecast Python Script (более известный как conkyforecast)
sudo add-apt-repository ppa:conky-companions/ppa
sudo apt-get update
sudo apt-get install conkyforecast

Шрифты

Нам нужны будут 2 шрифта: Weather, Radio Space
Качаем их и складываем в ~/.fonts (если такой папки нет, то ее необходимо создать)
Создаем папку ~/.config/conky. Туда будем складывать все конфигурационные файлы (а их будет 3)


Конфигурационные файлы

  1. conkyForecast.config
  2. CACHE_FOLDERPATH = /tmp/
    CONNECTION_TIMEOUT = 5
    EXPIRY_MINUTES = 30
    TIME_FORMAT = %H:%M
    DATE_FORMAT = %d/%m/%Y
    LOCALE = en
    XOAP_PARTNER_ID =
    XOAP_LICENCE_KEY =
    MAXIMUM_DAYS_FORECAST = 7
    BASE_XOAP_URL = http://xml.weather.com/weather/local/?cc=*&dayf=10&link=xoap&prod=xoap&par=&key=&unit=m
  3. conky_weather_moscow.rc
  4. use_xft yes
    xftfont RadioSpace:size=10
    update_interval 2
    own_window yes
    own_window_type override
    own_window_transparent yes
    own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
    double_buffer yes
    draw_shades no
    draw_outline no
    draw_borders no
    draw_graph_borders yes
    default_color DFDFDF
    alignment  bottom_left
    gap_x 80
    gap_y -90
    cpu_avg_samples 2
    net_avg_samples 2
    override_utf8_locale yes
    use_spacer none
    text_buffer_size 4096
    minimum_size 760 10
    
    TEXT
    Weather in ${execi 60 conkyForecast --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=CN} ${hr 2}
    ${font Weather:size=50}y${goto 35}${voffset -12}${font RadioSpace:size=50}${execi 60 conkyForecast --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=HT}${font}
    Feels like:${goto 100}${execi 60 conkyForecast --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=LT}${voffset -5}
    Humidity:${goto 100}${execi 60 conkyForecast --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=HM}${voffset -5}
    Pressure:${goto 100}${execi 60 conkyForecast --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=BR}${voffset -5}
    Visibility:${goto 100}${execi 60 conkyForecast --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=VI}
    ${voffset -125}
    ${goto 320}${font}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=DW --startday=1}
    ${goto 320}${font Weather:size=30}y${goto 340}${font RadioSpace:size=20}${voffset -15}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=HT --startday=1}${font}
    ${goto 340}${voffset -4}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=LT --startday=1}
    ${voffset -69}
    ${goto 410}${font}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=DW --startday=2}
    ${goto 410}${font Weather:size=30}y${goto 430}${font RadioSpace:size=20}${voffset -15}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=HT --startday=2}${font}
    ${goto 430}${voffset -4}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=LT --startday=2}
    ${voffset -69}
    ${goto 500}${font}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=DW --startday=3}
    ${goto 500}${font Weather:size=30}y${goto 520}${font RadioSpace:size=20}${voffset -15}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=HT --startday=3}${font}
    ${goto 520}${voffset -4}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=LT --startday=3}
    ${voffset -69}
    ${goto 590}${font}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=DW --startday=4}
    ${goto 590}${font Weather:size=30}y${goto 610}${font RadioSpace:size=20}${voffset -15}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=HT --startday=4}${font}
    ${goto 610}${voffset -4}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=LT --startday=4}
    ${voffset -69}
    ${goto 680}${font}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=DW --startday=5}
    ${goto 680}${font Weather:size=30}y${goto 700}${font RadioSpace:size=20}${voffset -15}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=HT --startday=5}${font}
    ${goto 700}${voffset -4}${execi 60 conkyForecast  --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --datatype=LT --startday=5}
    ${execpi 60 conkyForecast --config=~/.config/conky/conkyForecast.config --location=RSXX0063 --template=~/.config/conky/conky_weather.template
  5. conky_weather.template
  6. ${image [--datatype=WI] -p 180,20 -s 113x113}
    ${image [--datatype=WI --startday=1] -p 320,60 -s 70x70}
    ${image [--datatype=WI --startday=2] -p 410,60 -s 70x70}
    ${image [--datatype=WI --startday=3] -p 500,60 -s 70x70}
    ${image [--datatype=WI --startday=4] -p 590,60 -s 70x70}
    ${image [--datatype=WI --startday=5] -p 680,60 -s 70x70}

Вопросы


  1. Что с этим добром теперь делать?
  2. Собственно осталось запустить и посмотреть как оно все работает
    conky -c ~/.config/conky/conky_weather_moscow.rc

  3. Я живу в глуши - в Саратове! Я хочу погоду для Саратова!
  4. Не проблема! Идем на сайт weather.com (именно оттуда у нас погода сливается). Набираем в поиске Saratov (сайт буржуйский, по-русски не понимает). И получаем погоду для Саратова. Далее смотрим в адресную строку и видим ссылку http://www.weather.com/weather/today/RSXX0414. Вот последний код RSXX0414 нам и нужен. Дальше делаем копию файла conky_weather_moscow.rc, обзываем его conky_weather_saratov.rc. Открываем его и во всем файле меняем код Москвы (RSXX0063) на код Саратова (RSXX0414). Сохраяем и запускаем как указано в вопросе №1 (не забывая указать правильный файл)

  5. АААААА!!!! У меня ничего не заработало!!! Всё сломалось!!!
  6. Без паники! Посчитайте до десяти и... плюньте на это. Погоду за окном и так видно.

3 комментария :

Unknown комментирует...

мне было удодно сделать так
fit@mistfits:~$ cd ~/.config/conky
fit@mistfits:~/.config/conky$ gedit conkyForecast.config
fit@mistfits:~/.config/conky$ gedit conky_weather_moscow.rc
fit@mistfits:~/.config/conky$ gedit conky_weather.template
и научным копи-паст завести нужные файлики

но он мне выдал...
fit@mistfits:~/.config/conky$ conky -c ~/.config/conky/conky_weather_moscow.rc
Conky: desktop window (1200095) is subwindow of root window (15a)
Conky: window type - override
Conky: drawing to created window (0x5000001)
Conky: drawing to double buffer
ERROR: Error reading weather data: Invalid location provided.
ERROR: Location RSXX0063 is not in cache.
ERROR: Failed to load the location cache
ERROR: Location RSXX0063 is not in cache.

И далее по кругу. Сколько ждать? минут 15?

test комментирует...

Да есть такая штука. Когда первый раз запускаешь он ругается на то, что чего-то там нет в кэше. Простой перезапуск коньков помогает. Т.е. тупо остановить и запустить коньки еще раз.
У меня объяснения нет почему так происходит и главное что именно там происходит. Для меня это просто волшебство, которое лечится перезапуском ;)

Unknown комментирует...

fit@mistfits:~$ conky -ver
Conky 1.8.1 compiled Fri Dec 16 18:29:36 UTC 2011 for Linux 2.6.24-30-server (x86_64)

Compiled in features:

System config file: /etc/conky/conky.conf
Package library path: /usr/lib/conky

X11:
* Xdamage extension
* XDBE (double buffer extension)
* Xft
* ARGB visual

Music detection:
* Audacious
* MPD
* MOC
* XMMS2

General:
* math
* hddtemp
* portmon
* Curl
* RSS
* Weather (METAR)
* Weather (XOAP)
* wireless
* support for IBM/Lenovo notebooks
* nvidia
* eve-online
* config-output
* Imlib2
* apcupsd
* iostats
* ncurses
* Lua

Lua bindings:
* Cairo
* Imlib2

fit@mistfits:~$ conkyForecast --version
conkyForecast v2.24

Завтра поковыряю Коньки еще, может с версиями что не так.