Conky

Para completar la configuración del escritorio, os traigo sin duda, la aplicación más configurable al respecto, capaz de monitorizar todo lo relacionado con discos duros (capacidad, temperaturas), ram, cpu, conexión de red (velocidad o cantidad total de información bajada y subida), y todo tipo de datos de la placa madre (temperaturas, intensidades, rpm de los ventiladores...)..., y por si fuera poco de incluir todos los servicios que se te puedan ocurrir, desde indicador de mensajes de correo, lector de titulares de noticias, dar la previsión del tiempo, informar de las descargas del mldonkey, o de la canción que estés escuchando, ... Y todo ello consumiendo muy poca memoria, sin duda menos que cualquier otro programa de monitorización.

Para descargarlo, simplemente teclear en consola:
sudo apt-get install conky

Otro punto fuerte del programa como ya he dicho es que es altamente configurable, claro, eso tiene un problema, la configuración te lo tienes que currar tú. La configuración consiste en un archivo situado en tu carpeta personal con el nombre de .conkyrc y en el que va todas las opciones del programa.
Podeís empezar usando el archivo de ejemplo que trae el programa, se encuentra en /usr/share/doc/conky/examples, descomprimís el archivo que contiene en vuestra carpeta personal y renombrándolo a .conkyrc (ten en cuenta que al ser un nombre con un punto delante, en linux es un archivo oculto y para al navegar por un directorio y poder verlo deberás habilitar ver archivos ocultos, simplemente CTRL+H.
También puedes descargarte alguno de los .conkyrc que tienen como ejemplos en la propia página de ejemplos del programa, como verás la variedad es grande.

El archivo .conkyrc se divide en dos partes, en la primera parte es donde se colocan los valores de configuración del programa, que si es transparente, que si usa esta fuente o la otra, que donde se coloca en la pantalla, que qué tamaño, ... Para una explicación más profunda, en inglés: conky setting. En la segunda parte es donde ya se decide qué es lo que se monitoriza, dónde, cómo, con qué color... Para ello se dispone de multitud de variables a usar, una explicación detallada de cada una se encuentra en conky variables.

Si vais analizando los archivos .conkyrc que hay de ejemplo iréis viendo como se estructura el archivo, primero los valores de configuración, precedidos generalmente de un hilo de comentario (que comienza por #) para explicar su función. En mitad de archivo un hilo con el texto TEXT que indica el principio de la parte en la que se indican las variables a monitorizar.

Aparte de las variables generícas que trae por defecto se le puede hacer que ejecute cualquier script que se os ocurra, mediante el uso de las variables exec y execi (exec no se recomienda para nada porque consume bastante más memoria que el resto) con lo que su funcionalidad se hace inmensa:

  • Leer el correo de gmail: haciendo uso de gmail.py.
Puede optar desde mostrar únicamente el número de mensajes nuevos hasta el remitente, asunto, etc de los n ultimos mensajes recividos.


Eligiendo la fuente de noticias, así como el número de noticias a mostrar dispondrás de los últimos titulares en el escritorio.


  • Amarok
En este caso se puede usar el DCOP, una exensión en perl que permite comunicarse con amarok, y que instala con el propio amarok.
Las variables tipo usando este procedimiento: ${execi 10 dcop amarok player "Propiedad"}, mira todas las propiedades que tienes disponibles. Además, para poder representar una barra de progreso de canción uso este pequeño script:

#!/bin/bash
#
# requirements: amaroK (!)


case "$1" in

# % progress
progress)
stat=`dcop amarok player status`
if (( $stat == 1 )); then
expr 100
else
curr=`dcop amarok player trackCurrentTime`
tot=`dcop amarok player trackTotalTime`
if (( $tot )); then
expr $curr \* 100 / $tot
fi
fi
;;
esac


Incluso se pueden sacar datos sobre la colección de música, para ello échale un vistazo a este .conkyrc.


  • XMMS:
De diferente manera pero con identico resultado se puede hacer también que muestre la información sobre la pista actualmente, haciendo uso de este script.
Necesitarás tener instalado el infopipe para poder comunicarte con xmms, si no:
sudo apt-get install xmms-infopipe


  • Calendario:
Simplemente haciendo uso de la función cal, si la usas en la terminal comprobarás las funciones que tiene, desde representar un mes, el mes actual y el siguiente, ... Esta función requiere hacer uso de una fuente monospace para representarla sin que se descuadre.


  • Estado del tiempo:
Haciendo uso de estos archivos, que puedes editar para organizar la forma de representar los datos.


Para un listado exhaustivo de ejemplos con sus correspondientes .conkyrc, pásate por el larguísimo hilo al respecto en ubuntuforums.



Como ejemplo pego aquí mi .conkyrc:

# set to yes if you want Conky to be forked in the background
background no

# X font when Xft is disabled, you can pick one with program xfontsel
#font 5x7
#font 6x10
#font 7x13
#font 8x13
#font 9x15
#font *mintsmild.se*
#font -*-*-*-*-*-*-34-*-*-*-*-*-*-*


# Use Xft?
use_xft yes

# Xft font when Xft is enabled
#xftfont Bitstream Vera Sans Mono:size=8
xftfont Terminus:size=8

# Text alpha when using Xft
xftalpha 0.8

# Print everything to console?
# out_to_console no

# mail spool
mail_spool $MAIL

# Update interval in seconds
update_interval 5.0

# 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_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_type override

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# Minimum size of text area
minimum_size 5 5
maximum_width 160

# Draw shades?
draw_shades yes

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no
draw_graph_borders yes

# Stippled borders?
stippled_borders 8

# border margins
border_margin 4

# border width
border_width 1

# Default colors and also border colors
default_color white
default_shade_color black
default_outline_color white

# Text alignment, other possible values are commented
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right

# Gap between borders of screen and text
# same thing as passing -x at command line
gap_x 860
gap_y 2

# Subtract file system buffers from used memory?
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 2

# number of net samples to average
# set to 1 to disable averaging
net_avg_samples 2

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale yes


# Add spaces to keep things from moving about? This only affects certain objects.
use_spacer no
#Note: doesn't work in conky 1.2 =(


TEXT


${color #888888}jjgomera@$nodename ${color #CCCCCC}- ${color #888888}$machine
${color #888888}$sysname $kernel
${color #888888}UpTime: ${color }$uptime
${color #0077ff}${time %a-%d/%b/%y}${alignr}${time %k:%Mh}
${color}${hr 2}
${alignc}${color #0077ff}CPU
${voffset 5}${color #888888}Freq: ${color}2 x ${freq_dyn}MHz
${color #888888}${cpugraph 20 160 ff0000 0000ff}
${color }$cpu% ${color #ff0000}${cpubar 4}
${voffset 5}${color #888888}Carga: ${color }$loadavg
${color #888888}Temp:${color #ff0000} ${i2c temp 1} ${i2c temp 2} ${color}${i2c temp 3} C
${color #888888}Ventilador:${color } ${i2c fan 1} RPM
${color #888888}Int:${alignr}${color } ${i2c in 0} ${i2c in 1} ${i2c in 2} ${i2c in 3} ${i2c in 4} A
${alignr}${color }${i2c in 5} ${i2c in 6} ${i2c in 7} ${i2c in 8} A
${color #888888}Process: ${color}$processes${alignr}${color #888888}Runing: ${color}$running_processes
${color white}${stippled_hr 2 1}
${color #0077ff}${alignc}Memoria:
${voffset 5}${color #10DFED}RAM: ${color } $memperc%${alignr}$mem${color #888888}/$memmax
${color #10DFED}${membar 4,160}
${color #10DFED}SWAP: ${color }$swapperc%${alignr}$swap${color #888888}/$swapmax
${color #10DFED}${swapbar 4,160}
${voffset 5}${color #888888}Nombre${alignr}RAM CPU%
${color #B60000}${top name 1}${alignr}${top mem 1} ${top cpu 1}
${color #D17D00}${top name 2}${alignr}${top mem 2} ${top cpu 2}
${color #B2B200}${top name 3}${alignr}${top mem 3} ${top cpu 3}
${color #187B18}${top name 4}${alignr}${top mem 4} ${top cpu 4}
${color #3A9191}${top name 5}${alignr}${top mem 5} ${top cpu 5}
${color white}${stippled_hr 2 1}
${color #0077ff}${alignc}Disco Duro:
${voffset 5}${color #E2E22D}HOME:${alignr}${color }${fs_free /}${color #888888}/${fs_size /}
${color #E2E22D}${fs_bar 4,160 /}
${if_mounted /media/Datos}${color #E2E22D}Datos:${alignr}${color }${fs_free /media/Datos}${color #888888}/${fs_size /media/Datos}
${color #E2E22D}${fs_bar 4,160 /media/Datos}
$endif${if_mounted /media/Windows}${color #E2E22D}Windows:${alignr}${color }${fs_free /media/Windows}${color #888888}/${fs_size /media/Windows}
${color #E2E22D}${fs_bar 4,160 /media/Windows}
$endif${color #888888}Disco I/O: $color$diskio
${voffset -5}${color white}${stippled_hr 2 1}
${color #0077ff}${alignc}RED:
${voffset 5}${color #888888}Subida: ${color #55B350}${upspeed eth0}k/s${alignr}${color #55B350} ${totalup eth0}
${color #888888}Descarga: ${color #55B350}${downspeed eth0}k/s${alignr}${color #55B350} ${totaldown eth0}
${color #888888}${downspeedgraph eth0 160BE9 00ff00 300}
${color #888888}Conexiones totales:${alignr}$color ${tcp_portmon 1 65535 count}
${color #888888}Salida: $color${tcp_portmon 32768 61000 count}${alignr}${color #888888}Entrada: $color${tcp_portmon 1 32767 count}
${color #888888}${alignr}amule:$color ${tcp_portmon 4662 4662 count}
${color #0077ff}IP: $color${execi 10000 curl 'http://www.whatismyip.org'}
${voffset -5}$color$stippled_hr${if_running amarokapp}
${color #0077ff}${alignc}Amarok
${color #CC6600}${alignc}${execi 10 dcop amarok player artist}
${execi 10 dcop amarok player album} ${alignr}${execi 10 dcop amarok player year}
${execi 10 dcop amarok player title}
${execi 5 dcop amarok player currentTime}/${execi 10 dcop amarok player totalTime} ${execibar 1 ~/configuracion/amarok.sh progress}
${color #CC6600}Bitrate:${execi 10 dcop amarok player bitrate}kbps${alignr}Vol:${execi 10 dcop amarok player getVolume}%
$else
${color #0077ff}Root: ${color white}${execi 10000 grep mount /var/log/fsck/checkroot | fold -w25}
${color #0077ff}Datos: ${color white}${execi 10000 grep blocks /var/log/fsck/checkfs | fold -w25}$endif


Y finalmente aquí va la prueba de como queda en pantalla, con las dos opciones, cuando esta funcionando amarok y cuando no.




Si lo quieres añadir a la lista de programas al inicio simplemente lo añades en sistema/preferencias/sesiones.
Puede que tengas problemas de que aunque se inicie no aparezca en pantalla, sobretodo si usas beryl, compiz, en ese caso conky siempre debe ser iniciado después de que los efectos de escritorio estén cargados, por lo que lo que deberías de poner como programa al inicio no es el propio conky sino otro script como este para darle tiempo al sistema de iniciar el sistema gráfico.

#!/bin/bash
sleep 60 && conky;


Si tenéis alguna duda, no dudéis en preguntar en los comentarios, que yo no mato a ningún gatito xD

10 comentarios:

Max Rotten Power (a.k.a. Lone Rocker) dijo...

hola, tengo un problema para que se muestre la información de Amarok.
Primero una duda: esta extensión DCOP, ¿hay que instalarla, o ya viene con Amarok? no me queda claro.
El problema es que, a pesar de tener el comando bien puesto, incluso igual a como lo tienes ahí, la información no aparece, sino que se muestra la misma línea del archivo .conkyrc

volante dijo...

dcop sí viene instalado con amarok, lo puedes comprobar con el amarok abierto en consola, pon por ejemplo:
dcop amarok player title
y te debería devolver el título de la canción que está sonando, y si funciona en consola también en conky, será algún problema de escritura, asegúrate que la línea empieza por $

Anónimo dijo...

Me he agenciado el fichero de configuración. Queda bien vistoso el Conky ;).

Muchas gracias.

Anónimo dijo...

Hola, desde ya gracias por el tutorial! Te comento un problemita que tengo, cuando trato de descomprimir el archivo de example ->conky.conf.gz me da error, por qué puede ser? La verdad soy nuevo con linux y estoy un poco perdido xD
Otra opción que nombraste es bajar otros ejemplos, la pregunta bestial es: sólo debo guardar el script en un editor de textos y guardarlo en la carpeta de ejemplos? xD!!!

Ojalá puedas ayudarme. Agus.

volante dijo...

hola
probablemente si lo estás extrayendo desde la terminal, no hayas puesto la ruta completa, o si lo estás haciendo gráficamente lo estés intentando descomprimir en una carpeta donde no tienes permiso. Copia primero el archivo comprimido a tu home, y descomprimelo allí, renombra el archivo a .conkyrc e inicia conky
Con respecto a lo segundo, si, es tan sencillo como abrir el editor de texto, gedit, kate geany o el que uses, pegar el texto del archivo y guardarlo con el nombre .conkyrc en tu directorio home: /home/usuario/

Anónimo dijo...

Gracias por la ayuda! ya lo he arreglado, ahora me volcaré en aprender cómo configurarlo!

Agus.

David S. dijo...

Pues yo tengo Ubuntu... y he tratado meterle el script de Amarok y me sale la barrita de progreso pero no se llena... guarde el codigo como amarok.sh... y lo guarde en la carpeta ~/.scripts... modifique la linea para que corriera ~/.scripts/amarok.sh... y no me sale... alguien puede ayudarme?

volante dijo...

hola
a priori es dificil saberlo, si lanzas conky desde la terminal no te da ningún error?
Podrías pegar la linea concreta de la barra de progreso del amaro del conkyrc

lcsanchez dijo...

yo creo ke me vas a matar :P

pero intente poner el Amarok, y no me funciona, lo puse tal cual lo tienes tu... y nada... ademas lo puse despues de los procesos, y cuando pongo todo eso, y reinicio conky, ya no me muestra los procesos ni el amarok, me puedes ayudar???

volante dijo...

Tranki, para eso estamos jeje

hace mucho que no uso amarok, y de hecho, con la versión 2 dejo de funcionar esto, creo recordarque se cambio dcop por dbus

Si usas la versión 2 mirate este script

Si usas la versión 1.x puedes probar desde una terminal a escribir la orden a ver que devuelve:
dcop amarok player title