12 ene. 2009

Conky a fondo (Segunda parte)

Continuamos con el artículo en profundidad sobre conky, el fabuloso monitor de sistema. Veremos como cargar scripts externos a conky aumentando sus capacidades, como hacerle ejecutar diferentes comandos de sistema y finalizaremos la configuración de nuestra versión personalizada de conky.


Para todos los que no os funcionan los enlaces de descarga dejo un paquete con las fuentes, los scripts y la configuración de conky.

Sólo teneís que descomprimirlo en vuestro home con:
$ tar xvfj script_conky.tar.bz2

Y después directamente ejecutar conky con:
$ conky &

http://www.megaupload.com/?d=M8IE282H


  • Sección red
En esta sección mostraremos todos los datos relativos a nuestra red, con información sobre velocidades, totales transmitidos y cobertura wifi. El código es este:

RED ${hr 2}

${voffset -6}${font PizzaDude Bullets:size=14}O${font} Up: ${upspeed ath0} kb/s ${alignr}${upspeedgraph ath0 8,60}
${voffset 4}${font PizzaDude Bullets:size=14}U${font} Down: ${downspeed ath0} kb/s ${alignr}${downspeedgraph ath0 8,60}
${voffset 4}${font PizzaDude Bullets:size=14}N${font} Upload: ${alignr}${totalup ath0}
${voffset 4}${font PizzaDude Bullets:size=14}T${font} Download: ${alignr}${totaldown ath0}
${voffset 4}${font PizzaDude Bullets:size=14}Z${font} Señal: ${wireless_link_qual ath0}% ${alignr}${wireless_link_bar 8,60 ath0}


Los comandos de conky usados y sus prámetros son:
upspeed "interfaz" = muestra numéricamente la velocidad de subida del interfaz seleccionado
downspeed "interfaz" = muestra numéricamente la velocidad de descarga
upspeedgraph
"altura,anchura interfaz" = muestra gráficamente la velocidad de subida
downspeedgraph "altura,anchura interfaz" = muestra gráficamente la velocidad de descarga
totalup "interfaz" = muestra la cantitdad total de datos enviados
totaldown "interfaz" = muestra la cantidad total de datos recibidos
wireless_link_qual "interfaz" = muestra el % de señal numéricamente
wireless_link_bar "altura,anchura interfaz" = muestra el % de señal gráficamente


  • Sección Temperaturas
En esta sección mostraremos el estado interno de diferentes componentes de nuestro PC (no todos los sistemas pueden mostrar las mismas informaciones) y también usaremos un script externo para mostrar la temperatura exterior (ver "Gestión de Scripts" en este artículo para saber más).

El código es el siguiente:
TEMPERATURAS ${hr 2}
${font Weather:style=Bold:size=14}y ${font}Procesador: ${alignr}${hwmon 1 temp 1} / ${alignr}${hwmon 1 temp 3} C
${font Weather:style=Bold:size=14}y ${font}Placa base: ${alignr}${hwmon 2 temp 3} C
${font Weather:style=Bold:size=14}y ${font}Disco duro: ${alignr}${execi 20 hddtemp /dev/sda | cut -c28-32}
${font Weather:style=Bold:size=14}y ${font}Gráfica: ${alignr}${execi 10 nvidia-settings -q=GPUCoreTemp | grep 0.0 | cut -c 47-48} C
${font Weather:style=Bold:size=14}y ${font}Temperatura exterior: ${alignr}${execi 1800 ~/.scripts/weather/weather.sh SPXX0015}


Los comandos de conky usados y sus prámetros son:
hwmon x temp y = lee la temperatura "y" del sensor "x"

Para saber que hay que poner en "x" e "y" lo mejor es recurrir al man, aqui os pongo un fragmento:

hwmon (dev) type n
Hwmon sensor from sysfs (Linux 2.6). Parameter dev may be omit‐
ted if you have only one hwmon device. Parameter type is either
’in’ or ’vol’ meaning voltage; ’fan’ meaning fan; ’temp’ (Cel‐
sius) or ’tempf’ (Fahrenheit) meaning temperature. Parameter n
is number of the sensor. See /sys/class/hwmon/ on your local
computer.

Para entender como obtengo las temperaturas del disco duro y de la gráfica ver "Ejecutar comandos del sistema" más adelante en este artículo. Para entender como obtengo la temperatura exterior ver
"Gestión de Scripts" más adelante en este artículo.


  • Sección Correo
Esta sección consta de una llamada a un script externo que nos mostrará información sobre las llegadas de nuevos mensajes a nuestra bandeja de entrada de Gmail (ver "Gestión de Scripts" en este artículo para saber más).

El código es este:
CORREO ${hr 2}
${font MarVoSym:style=Bold:size=14}B ${font}Gmail: ${alignr}${execi 300 python ~/.scripts/gmail.py}




  • Gestión de fuentes personalizadas
Si queremos usar fuentes personalizadas en conky es tan sencillo como poner la fuente en cuestión dentro del directorio ~/.fonts e indicarle a conky que la use con las directrices:

xftfont nombre_fuente:size=tamaño_fuente = establece la fuente por defecto, se define en la sección de opciones generales del archivo .conkyrc
${font nombre_fuente:size=tamaño_fuente} = establece la fuente que se usará para un determinado indicador
${font} = deja de usar la fuente anterior y vuelve a usar la fuente por defecto

Gracias a esto podemos simular el uso de iconos gráficos en conky, usando en realidad caracteres normales de fuentes concretas.

Algunas fuentes muy útiles son OpenLogos (logotipos libres de distribuciones y más), StyleBats (dibujos esquemáticos, en mi caso los he usado para representar partes del sistema como CPU o RAM), Pie charts for maps (perfectos para representar discos y particiones), PizzaDude bullets (indicadores simples, ideales para las funciones de red), Weather (muy buena para temperaturas y scripts que consultan las condiciones climáticas).

Todas estas fuentes están incluidas en el archivo conkyrc-fosco_.tar.gz


  • Gestión de scripts
Los scripts añaden funcionalidades extra a conky (por ejemplo control multimedia, lectores de noticias, gestores de correo, consultas climáticas...), vamos a ver el ejemplo de los dos scripts que yo he usado: el que da la temperatura exterior y el que avisa de la llegada de correo.

Pondremos los scripts que necesitemos en ~/.scripts y los invocaremos desde conky con las directrices

Los scripts para el Gmail y para el clima estan incluidos en el archivo conkyrc-fosco_.tar.gz

Para configurar el script de gmail introduciremos nuestro nombre de usuario y contraseña en el archivo gmail.py.

Para configurar el script del clima solo tendremos que poner el código de localización correcto (SPXX0015 en mi caso) en la linea:
${font Weather:style=Bold:size=14}y ${font}Temperatura exterior: ${alignr}${execi 1800 ~/.scripts/weather/weather.sh SPXX0015}

del archivo .conkyrc. Para saber el código correcto entrad en la dirección http://xoap.weather.com/search/search?where=tu_ciudad, substituyendo "tu_ciudad" por el nombre de tu ciudad.


  • Ejecutar comandos del sistema
Podemos ejecutar comandos del sistema y mostrar en conky su resultado usando una estructura del tipo:
${execi "segundos comando"} = ejecuta el "comando" y lo repite cada "segundos"

Por ejemplo:
${execi 3600 curl www.whatismyip.org} = muestra nuestra IP externa y la comprueba cada hora (3600 segundos)


  • Artículos relacionados
Conky, un monitor de sistema ultraligero
Conky a fondo (Primera parte)


  • Enlaces de interés
http://conky.sourceforge.net/
http://screenlets.org/index.php/WaterMark

13 comentarios :

roe dijo...

Muy buenos tus posts de conky, enhorabuena!
Tengo un problemilla con la ejecución de comandos (hddtemp), no me deja abrir /dev/sda... será algo de permisos, pero no sé como solucionarlo.
Alguna idea?
Gracias!

fosco_ dijo...

Para solucionar el tema de permisos ejecuta:
$ sudo dpkg-reconfigure hddtemp

cuando te pregunte si lo quieres "suid" le dices que sí, ya no volverá a quejarse.

Anónimo dijo...

Podrías poder a subir el link del conkyrc que no me lo puedo bajar.
Gracias

fosco_ dijo...

@Anónimo: el conkyrc puedes encontrarlo en http://boxstr.com/files/4573564_awmiq/conkyrc-fosco_.tar.gz

Carlos dijo...

Que tal amigo, muy bueno el tutorial conky sòlo una observaciòn, los ficheros del conkyrc y los scripts ya no existen. si los pudieran volver a subir y actualizar los enlances te estarìa sumamente agradecido.

angerrising dijo...

esta muy bueno el tutorial perono funciona nigun enlace de descarga saludos

fosco_ dijo...

Para todos los que no os funcionan los enlaces de descarga dejo un paquete con las fuentes, los scripts y la configuración de conky.

Sólo teneís que descomprimirlo en vuestro home con:
$ tar xvfj script_conky.tar.bz2

Y después directamente ejecutar conky con:
$ conky &

http://www.megaupload.com/?d=M8IE282H

Moisés dijo...

dentro de los scripts no está ni el de Weather ni el de Gmail, y a lo que roe dijo simplemente dale permisos sudo chmod u+s /usr/bin/hddtemp

Vicente dijo...

Hola
Gracias por el tutorial es muy bueno,pero no entiendo ...
Pondremos los scripts que necesitemos en ~/.scripts y los invocaremos desde conky con las directrices.
¿A que te refieres con ~/.scripts ?
¿que tengo que crear un archivo llamado .scripts ?¿y cuales serian las directrices?
Nuevamente gracias

fosco_ dijo...

@Vicente: ~/.scripts es un directorio, dentro de él meteremos todos los scripts necesarios para conky.

Lo puedes crear con mkdir ~/.scripts (sin sudo!)

No es una localización estándar, puedes poner los scripts en cualquier otro sitio, pero de esta manera quedan bien ordenados y ocultos para que no los borres sin querer.

Lo de las directrices, diría que la frase se me quedó a medias, quería decir que para ejecutar un script desde conky lo haremos con la orden:

${execi 1800 ~/.scripts/script_q_sea}

Donde el 1800 es la cantidad de segundos q deben pasar entre cada ejecución del script

Espero haberte aclarado las dudas.

Nitrosito dijo...

alguien save donde conseguir los scripts de gmail y los de el tiempo?

Nico dijo...

Hola, muy bueno el tutorial, lo he seguido casi completo pero he tenido problemas para descargar el archivo tanto de boxstr como de MU (RIP), ¿existe alguna posibilidad de que lo subas en otro servidor?

¡gracias de antemano!

Dani Molina dijo...

@Nico, pues tristemente esos archivos murieron, hace tiempo que no uso esa configuración de conky en mi ordenador y la única copia que tenía de esos archivos estaba en MU. Una nueva víctima inocente ;)