Instal·lant conky amb previsió de temps a Ubuntu 10.04

(Actualitzat el 26 de novembre de 2011 perquè el servei weather.com ha canviat)

conky és un monitor de sistema lliure i lleuger per a X, que mostra qualsevol informació al vostre escriptori. Ahir després d'una pregunta que vaig rebre en un fòrum d'Ubuntu, vaig decidir instal·lar-lo en els meus ordinadors Ubuntu 10.10 d'escriptori i portàtil. No va ser fàcil i vaig haver d'anar a diferents articles de fòrums i enllaços, així que vaig decidir escriure aquest article sobre com ho vaig fer.

La meva configuració de conky està composta de dues seccions diferents i ocupa un lloc important de l'escriptori. A una configuració amb dos monitors com la que faig servir al meu sobretaula això no és un problema, però al portàtil presenta el problema que Conky, malgrat que està posicionat sempre a sota de qualsevol finestra, es posiciona sobre les icones d'escriptori, així que qualsevol icona que podeu tenir a l'àrea d'escriptori on es posa conky quedarà oculta. No faig servir massa icones d'escriptori i les icones encara es poden accedir passant el ratolí sobre l'àrea de conky, però tingueu-ho en compte si ho voleu instal·lar.

Al meu ordinador de sobretaula faig servir dos monitors i he configurat conky perquè és mostri al racó superior dret, i es mostra al segon monitor que tinc a la dreta del primer. Al portàtil també està configurat perquè es mostri al racó superior dret. També vaig instal·lar conkyForecast, que és un script de python per accedir informació meteorològica de www.weather.com, un servei meteorològic en línia. 

Així és com de maco es veu al portàtil, amb el fons de pantalla "cometa" que es pot trobar a /usr/share/backgrounds/cosmos/comet.jpg:

Desktop

El primer que es pot fer és instal·lar el propi conky:

sudo apt-get install conky

Esperarem a configurar conky fins que hàgim instal·lat tot el necessari per a la predicció meteorològica. Necessiteu informació sobre la vostra localització. Per això navegueu al lloc www.weather.com, i a la part superior esquerra trobareu un camp de text per entrar una localització i preguntar pel temps. Entreu la vostra localització, per exemple jo vaig entrar Barcelona, i mireu l'URL que surt al vostre navegador, per exemple jo veig:

http://www.weather.com/weather/today/Barcelona+Spain+SPXX0015

Necessiteu el codi després del símbol "+", o sigui SPXX0015.

Abans de continuar necessiteu baixar-vos un parell de tipus de lletra, almenys jo no les tenia, una per al logo d'Ubuntu i el títol, i l'altre per als símbols meterològics (el sol, els núvols, etc.).

Els símbols d'Ubuntu es poden baixar de:

http://www.gnome-look.org/content/show.php/OpenLogos?content=54390

Podeu posar el fitxer baixat o bé a una carpeta que es digui ".fonts" a la vostra carpeta d'inici o a /usr/share/fonts/truetype/myfonts.

El tipus de lletra meteorològic el podeu baixar de:

http://www.dafont.com/search.php?psize=m&q=weather

Instal·leu el fitxer ttf (canvieu-li el nom a weather.ttf) en qualsevol dels dos llocs mencionats.

A continuació heu d'instal·lar el script conkyForecast. Aquest és un paquet PPA, el podeu instal·lar amb les dues línies següents al vostre terminal:

sudo add-apt-repository ppa:conkyhardcore/ppa

sudo apt-get update && sudo apt-get install conkyforecast

Ara copieu l'script conkyForecast a la vostra carpeta d'inici:

cp /usr/share/conkyforecast/conkyForecast.config ~/.conkyForecast.config

Bé, ja tenim tot instal·lat. Ara hem d'editar el fitxer de configuració per a conky i per a conkyForecast. Primer editem el fitxer ".conkyForecast.config" que hem posat a la carpeta d'inici:

# config settings for conkyForecast.py
CACHE_FOLDERPATH = /tmp/
CONNECTION_TIMEOUT = 5
EXPIRY_MINUTES = 30
TIME_FORMAT = %H:%M
DATE_FORMAT = %Y-%m-%d
LOCALE = us_US
XOAP_PARTNER_ID = 3566431133
XOAP_LICENCE_KEY = 30a3a1ab8008a8b5
MAXIMUM_DAYS_FORECAST = 4
AUTO_NIGHT = False
BASE_XOAP_URL = http://xml.weather.com/weather/local/<LOCATION>?cc=*&dayf=10&link=xoap&prod=xoap&key=<XOAP_LICENCE_KEY>&unit=m
PROXY_HOST = 
PROXY_PORT = 8080
PROXY_USERNAME = 
PROXY_PASSWORD = 

Ara heu de crear dos fitxer a la vostra carpeta d'inici, ".conkyrc1" i ".conkyrc2" per configurar cada un dels panells conky que es poden veure al meu escriptori. Aquí estan, tingueu cura d'entrar la vostra localització als llocs adequats en comptes del meu. A ".conkyrc1" ajusteu també els paràmetres dels processadors i els discos del vostre entorn:

.conkyrc1: 

#############################
##  VinDSL | 1280x1024x24  ##
#############################

####
## Use XFT? Required to Force UTF8 (see below).
#
use_xft yes
xftfont LiberationSans:size=9
xftalpha 0.1
text_buffer_size 2048

####
## Force UTF8? Requires XFT (see above).
## Displays degree symbol, instead of °, etc.
#
override_utf8_locale yes

####
## Update interval in seconds.
#
update_interval 1.5

####
## This is the number of times Conky will update before quitting.
## Set to zero to run forever.
#
total_run_times 0

####
## Create own window instead of using desktop (required in nautilus)?
#
own_window yes
own_window_type override
own_window_transparent yes

####
## Use double buffering? Reduces flicker.
#
double_buffer yes

####
## Draw shades?
#
draw_shades no

####
## Draw outlines?
#
draw_outline no

####
## Draw borders around text?
#
draw_borders no

####
## Draw borders around graphs?
#
draw_graph_borders no

####
## Print text to stdout?
## Print text in console?
#
out_to_ncurses no
out_to_console no

####
## Text alignment.
#
alignment top_right


####
## Minimum size of text area.
#
minimum_size 235 0

####
## Specify width and height for bars.
#
default_bar_size 0 4

####
## Gap between text and screen borders.
#
gap_x 400
gap_y 28

####
## Shorten MiB/GiB to M/G in stats.
#
short_units yes

####
## Pad % symbol spacing after numbers.
#
pad_percents 0

####
## Limit the length of names in "Top Processes".
#
top_name_width 10

####
## Subtract file system -/+buffers/cache from used memory?
## Set to yes, to produce meaningful physical memory stats.
#
no_buffers yes

####
## Set to yes, if you want all text to be in UPPERCASE.
#
uppercase no

####
## Number of cpu samples to average.
## Set to 1 to disable averaging.
#
cpu_avg_samples 4

####
## Number of net samples to average.
## Set to 1 to disable averaging.
#
net_avg_samples 2

####
## Add spaces to keep things from moving around?
## Only affects certain objects.
#
use_spacer right

####
## My colors.
#
color0 White
color1 Ivory
color2 Ivory2
color3 Ivory3
color4 Tan1
color5 Tan2
color6 Gray
color7 AntiqueWhite4
color8 DarkSlateGray
color9 Black

TEXT

##################
##     LOGO     ##
##################
${voffset -42}${font OpenLogos:size=103}${color2}v${voffset -66}${goto 178}${font UbuntuTitleBold:size=20}${color4}10.10
##################
##    SYSTEM    ##
##################
${voffset 10}${font Arial:bold:size=9.5}${color4}SYSTEM ${color8} ${hr 2}
${voffset 4}${font OpenLogos:size=10}${color2}u${voffset -4}${font}${color6} ${sysname} ${kernel} ${alignr} ${machine}
${voffset 2}${font StyleBats:size=10}${color2}A${voffset -1}${font}${color6} Intel I5 ${alignr}${freq_g cpu0} GHz
${voffset 2}${font StyleBats:size=10}${color2}q${voffset -1}${font}${color6} Uptime ${alignr}${uptime}
${voffset 2}${font StyleBats:size=10}${color2}o${voffset -1}${font}${color6} File System ${alignr}${fs_type}
##################
##  PROCESSORS  ##
##################
${voffset 5}${font Arial:bold:size=9.5}${color4}PROCESSORS ${color8}${hr 2}
${voffset 2}${font StyleBats:size=10}${color2}k${voffset -2}${font}${color6} CPU1  ${cpu cpu1}%${color7}${alignc 35}${cpubar cpu1}
${voffset 2}${font StyleBats:size=10}${color2}k${voffset -2}${font}${color6} CPU2  ${cpu cpu2}%${color7}${alignc 35}${cpubar cpu2}
${voffset 2}${font StyleBats:size=10}${color2}k${voffset -2}${font}${color6} CPU3  ${cpu cpu3}%${color7}${alignc 35}${cpubar cpu3}
${voffset 2}${font StyleBats:size=10}${color2}k${voffset -2}${font}${color6} CPU4  ${cpu cpu4}%${color7}${alignc 35}${cpubar cpu4}
##################
##    MEMORY    ##
##################
${voffset 5}${font Arial:bold:size=9.5}${color4}MEMORY ${color8}${hr 2}
${voffset 2}${font StyleBats:size=10}${color2}l${voffset -2}${font}${color6} RAM ${goto 95}${mem}/ ${memmax}${alignr}${memperc}%
${color7}${membar}
##################
##     HDD      ##
##################
${voffset 2}${font Arial:bold:size=9.5}${color4}HDD ${color8}${hr 2}
${voffset 2}${font StyleBats:size=10}${color2}x${voffset -2}${font}${color6} ROOT ${goto 95}${fs_used /} / ${fs_size /}${alignr}${fs_free_perc /}%
${color7}${fs_bar /}
${voffset 1}${font StyleBats:size=10}${color2}x${voffset -2}${font}${color6} HOME ${goto 95}${fs_used /home}/ ${fs_size /home}${alignr}${fs_free_perc /home}%
${color7}${fs_bar /home}
${voffset 1}${font StyleBats:size=10}${color2}x${voffset -2}${font}${color6} Data ${goto 95}${fs_used /data}/ ${fs_size /data}${alignr}${fs_free_perc /data}%
${color7}${fs_bar /data}
${voffset 1}${font StyleBats:size=10}${color2}4${voffset -2}${font}${color6} SWAP ${goto 95}${swap} / ${swapmax}${alignr}${swapperc}%
${color7}${swapbar}
##################
# TOP PROCESSES ##
##################
${voffset 3}${font Arial:bold:size=9.5}${color4}TOP PROCESSES ${color8}${hr 2}
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color6} ${top_mem name 1}${goto 115}${top_mem mem_res 1}${alignr}${top_mem mem 1}%
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color6} ${top_mem name 2}${goto 115}${top_mem mem_res 2}${alignr}${top_mem mem 2}%
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color6} ${top_mem name 3}${goto 115}${top_mem mem_res 3}${alignr}${top_mem mem 3}%
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color6} ${top_mem name 4}${goto 115}${top_mem mem_res 4}${alignr}${top_mem mem 4}%
##################
##   NETWORK    ##
##################
${voffset 5}${font Arial:bold:size=9.5}${color4}NETWORK ${color8}${hr 2}
${voffset 2}${font PizzaDude Bullets:size=10}${color2}a${font}${color6} Private IP${alignr}${addr eth0}
${font PizzaDude Bullets:size=10}${color2}a${font}${color6} Public  IP${alignr}${execi 600 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}
${voffset 4}${font PizzaDude Bullets:size=10}${color2}T${font}${color6} Down${alignr}${downspeed eth0}
${font PizzaDude Bullets:size=10}${color2}N${font}${color6} Up${alignr}${upspeed eth0}
${voffset 4}${font PizzaDude Bullets:size=10}${color2}T${font}${color6} Downloaded${alignr}${totaldown eth0}
${font PizzaDude Bullets:size=10}${color2}N${font}${color6} Uploaded${alignr}${totalup eth0}

.conkyrc2: 

#############################
##  VinDSL | 1280x1024x24  ##
#############################

####
## Use XFT? Required to Force UTF8 (see below).
#
use_xft yes
xftfont LiberationSans:size=9
xftalpha 0.1
text_buffer_size 2048

####
## Force UTF8? Requires XFT (see above).
## Displays degree symbol, instead of °, etc.
#
override_utf8_locale yes

####
## Update interval in seconds.
#
update_interval 1.5

####
## This is the number of times Conky will update before quitting.
## Set to zero to run forever.
#
total_run_times 0

####
## Create own window instead of using desktop (required in nautilus)?
#
own_window yes
own_window_type override
own_window_transparent yes

####
## Use double buffering? Reduces flicker.
#
double_buffer yes

####
## Draw shades?
#
draw_shades no

####
## Draw outlines?
#
draw_outline no

####
## Draw borders around text?
#
draw_borders no

####
## Draw borders around graphs?
#
draw_graph_borders no

####
## Print text to stdout?
## Print text in console?
#
out_to_ncurses no
out_to_console no

####
## Text alignment.
#
alignment top_right

####
## Minimum size of text area.
#
minimum_size 235 0

####
## Specify width and height for bars.
#
default_bar_size 0 4

####
## Gap between text and screen borders.
#
gap_x 10
gap_y 28

####
## Shorten MiB/GiB to M/G in stats.
#
short_units yes

####
## Pad % symbol spacing after numbers.
#
pad_percents 0

####
## Limit the length of names in "Top Processes".
#
top_name_width 10

####
## Subtract file system -/+buffers/cache from used memory?
## Set to yes, to produce meaningful physical memory stats.
#
no_buffers yes

####
## Set to yes, if you want all text to be in UPPERCASE.
#
uppercase no

####
## Number of cpu samples to average.
## Set to 1 to disable averaging.
#
cpu_avg_samples 4

####
## Number of net samples to average.
## Set to 1 to disable averaging.
#
net_avg_samples 2

####
## Add spaces to keep things from moving around?
## Only affects certain objects.
#
use_spacer right

####
## My colors.
#
color0 White
color1 Ivory
color2 Ivory2
color3 Ivory3
color4 Tan1
color5 Tan2
color6 Gray
color7 AntiqueWhite4
color8 DarkSlateGray
color9 Black

TEXT

##################
##   WEATHER    ##
##################
${voffset 5}${font Arial:bold:size=9.5}${color4}WEATHER ${color8}${hr 2}
# ${goto 59}${font Weather:size=40}${color1}y${voffset -8}${font RadioSpace:size=32}${color3}${offset 14}${execpi 600 conkyForecast --location=SPXX0015}
${goto 59}${font Weather:size=40}${color1}y${voffset -8}${font RadioSpace:size=32}${color3}${offset 14}${execpi 600 conkyForecast --location=GMXX2809}
${voffset -17}${font Arial:size=22}${color4}${alignc}${execi 600 conkyForecast --location=SPXX0015 --datatype=OB}
${voffset 7}${goto 20}${font ConkyWindNESW:style=Bold:size=38}${color2}${execi 600 conkyForecast --location=SPXX0015 --datatype=BS}${goto 96}${voffset -5}${font ConkyWeather:style=Bold:size=40}${color2}${execi 600 conkyForecast --location=SPXX0015 --datatype=WF}${voffset -2}${goto 180}${font MoonPhases:size=30}${color2}${execi 600 conkyForecast --location=SPXX0015 --datatype=HT}
${voffset -20}${goto 30}${font}${color2}${execi 600 conkyForecast --location=SPXX0015 --datatype=WS}${goto 86}Feels like ${execi 600 conkyForecast --location=SPXX0015 --datatype=LT --centeredwidth=4 }${goto 182}Lunar
${voffset 10}${goto 30}${font}${color2}${execi 600 conkyForecast --location=SPXX0015 --datatype=DW --startday=1 --shortweekday}${goto 83}${execi 600 conkyForecast --location=SPXX0015 --datatype=DW --startday=2 --shortweekday}${goto 136}${execi 600 conkyForecast --location=SPXX0015 --datatype=DW --startday=3 --shortweekday}${goto 192}${execi 600 conkyForecast --location=SPXX0015 --datatype=DW --startday=4 --shortweekday}
${goto 20}${font}${color2}${font ConkyWeather:size=32}${execi 600 conkyForecast --location=SPXX0015 --datatype=WF --startday=1 --endday=4 --spaces=1}
${goto 22}${voffset -30}${font}${color2}${execi 600 conkyForecast --location=SPXX0015 --datatype=HT --startday=1 --hideunits --centeredwidth=4 }/${execi 600 conkyForecast --location=SPXX0015 --datatype=LT --startday=1 --hideunits --centeredwidth=4 }${goto 76}${execi 600 conkyForecast --location=SPXX0015 --datatype=HT --startday=2 --hideunits --centeredwidth=4 }/${execi 600 conkyForecast --location=SPXX0015 --datatype=LT --startday=2 --hideunits --centeredwidth=4 }${goto 130}${execi 600 conkyForecast --location=SPXX0015 --datatype=HT --startday=3 --hideunits --centeredwidth=4 }/${execi 600 conkyForecast --location=SPXX0015 --datatype=LT --startday=3 --hideunits --centeredwidth=4 }${goto 185}${execi 600 conkyForecast --location=SPXX0015 --datatype=HT --startday=4 --hideunits --centeredwidth=4 }/${execi 600 conkyForecast --location=SPXX0015 --datatype=LT --startday=4 --hideunits --centeredwidth=4 }


################## 
##     TIME     ##
##################
${voffset 5}${font Arial:bold:size=9.5}${color4}TIME ${color8}${hr 2}
${voffset -4}${if_match ${time %l}<=9}${font RadioSpace:size=32}${color3}${alignc 2}${time %H:%Mh }${else}${if_match ${time %l}>=10}${font RadioSpace:size=32}${color3}${alignc 2}${time %H:%Mh}${endif}${endif}
${voffset -35}${font LiberationSans:size=8}${color4}${alignc 5}Sunrise${offset 1}${execi 600 conkyForecast --location=SPXX0015 --datatype=SR --startday=1}${color3}${offset 2}|${offset 2}${color4}Sunset${offset 1}${execi 600 conkyForecast --location=SPXX0015 --datatype=SS --startday=1}
##################
##   CALENDAR   ##
##################
${voffset 5}${font Arial:bold:size=9.5}${color4}DATE ${color8}${hr 2}
${voffset 2}${font LiberationMono:size=11}${color3}${alignc 5}${execpi 60 DJS=`date +%_d`; ncal -M -C -h| sed s/"\(^\|[^0-9]\)$DJS"'\b'/'\1${color orange}'"$DJS"'$color'/}

Ara podeu provar la configuració per veure si tot està bé entrant les comandes següents a una terminal:

conky -c ~/.conkyrc1 &

conky -C ~/.conkyrc2 &

Ara finalment heu de configurar aquestes dues comandes als programes d'inici per tenir conky cada cop que inicieu el vostre escriptori. Per això heu de crear un altre script per iniciar automàticament conky quan inicieu la sessió d'escriptori. Aquest és l'script que heu de posar a la vostra carpeta d'inici i anomenar per exemple .conky_autostart.sh:

#!/bin/bash
sleep 20 && conky -c ~/.conkyrc1
sleep 20 && conky -c ~/.conkyrc2

I ara heu d'anar al menú Preferències -> Programes d'inici i afegir aquest script tal com es mostra a la següent captura de pantalla:

Startup Conky

 

Un comentari final sobre el problema que vaig mencionar al principi sobre les icones ocultes. Si una icona d'escriptori queda a sota de l'àrea de conky, quedarà oculta perquè queda posicionada entre l'escriptori i conky i no la podreu veure. Això no passa amb finestres d'escriptori perquè sempre queden a sobre de conky. Per a mi no és un gran problema perquè mantinc el meu escriptori força net d'icones, però si connecto una memòria USB, per exemple, la icona pot aparèixer a l'àrea de conky i quedar oculta. Això tampoc és un problema, si no trobeu una icona simplement passeu el ratolí sobre l'àrea de conky i el punter canviarà a un dit assenyalant quan estigui sobre la icona. Simplement premeu el botó esquerre del ratolí i mantenint-lo premut moveu-vos a una altra àrea de l'escriptori que estigui net de conky. Això mourà la icona oculta fora de l'àrea de conky.

Etiquetes: