Contempo: Monitorea todo con Conky

Monitorea todo con Conky

Conky es un programa para monitorear prácticamente todos los acontecimientos que ocurren en Linux, y monitorear todos los componentes de tu hardware, como por ejemplo; temperaturas, velocidad, potencia, horas transcurridas, etc. Es que en realidad, es una larga lista de variables que existen a la hora de configurar Conky.

Conky es altamente configurable, y se pueden lograr miles de combinaciones a la hora de ingresar opciones al programa, y con ello tener un resultado final ya andando con una interfaz de usuario única. Es como si cada uno pudiera tener la oportunidad de crear su propio monitor de actividades de su sistema. Conky es un diamante en bruto; fácil de configurar, simple, rápido, y todo eso por texto.

Funcionamiento de Conky


Todas las opciones de Conky se pueden escribir, modificar y guardar en un archivo de configuración llamado: .conkyrc

Este archivo de configuración se guarda en su carpeta de usuario (/home/usuario/.conkyrc), y la configuración simple consta de dos "segmentos". El archivo lo pueden abrir con cualquier editor de texto (mousepad, leafpad, gedit).

El primer segmento siempre es el posicionamiento y comportamiento de la ventana, si... ventana, por que Conky corre en una ventana simple, y nada más. El segundo segmento es es más amplio, todas las configuraciones de las opciones y variables de Conky se escriben ahí. Incluidas las de interfaz de usuario.

La manera más fácil de instalar Conky es buscando en los repositorios de su distribución. Solamente tipear "conky", y aparecerá (Synaptic en Ubuntu). Si son adictos a la terminal de comandos, y utilizan Ubuntu (o alguna distro basada en Debian), pueden tipear en una terminal:
sudo aptitude install conky

Aunque también se puede bajar actualizado desde su sitio oficial.

Para iniciar Conky, solamente hay que mantener apretadas estas dos teclas: Alt + F2. Y luego tipear en el cuadro (aunque más adelante enseño como agregarlo automáticamente al inicio del sistema):
conky

Para matar a Conky (cerrarlo), se hace lo mismo: Alt + F2. Pero luego tipear en el cuadro:
killall conky

Conky también puede ejecutarse con varias ventanas simultáneamente, solo hay que crear otro archivo de configuración: .conkyrc1, .conkyrc2, etc. (se entiende  la idea).

Configuración básica


Vamos a ir por partes, lo más básico es monitorear los típicos procesos del sistema, como es el caso del uso de CPU, RAM, Swap, velocidad de Internet, cantidad de datos bajados, hora, fecha, cosas muy básicas. Además, se puede modificar la interfaz de usuario del programa. Las opciones un poco más avanzadas son otra cosa, y no nos adelantaremos, vamos de a poco.

Comportamiento de la ventana

En el punto de "Funcionamiento de Conky" hablé sobre los dos segmentos, este es el primer segmento de comportamiento de la ventana y posicionamiento. Mi configuración para el comportamiento de la ventana es así:
background yes
update_interval 1.0
use_xft yes
xftfont verdana:size=8
alignment bottom_right
xftalpha 0.8
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,sticky,skip_taskbar,skip_pager,below
double_buffer yes
draw_shades no
draw_outline no
draw_borders no
stippled_borders 0
border_margin 4
border_width 1
default_shade_color grey
default_outline_color black
default_color BADCDD
use_spacer none
no_buffers yes
uppercase no
color1 F8DF58

Esa es una configuración simple de la ventana, será transparente (para ver su papel tapiz de fondo), y se posicionará en la parte baja del lado derecho de su escritorio. También agregué unas opciones para que se posicionara siempre por debajo de todas las ventanas, y se "pegara" al fondo del escritorio. Y además lo deje con bordes de ventana más delgados.

Todo eso de arriba va al principio del archivo de configuración ".conkyrc", para después del salto de un par de líneas en el archivo, se pueda empezar con el segundo segmento, para configurar todas las opciones y variables que existen en Conky, y la interfaz de usuario final, o sea... lo que verán en su escritorio andando.

Opciones y variables

El segundo segmento son todas las opciones, y la gran cantidad de variables que tiene Conky, todas esas variables se pueden ver en este sitio (en inglés). En aquel sitio solamente fijense en la primera columna de la izquierda, ahí aparece el nombre de cada variable. En la primera columna del lado derecho se muestra la explicación de esa variable (que es lo que hace, su función).

Ahora publicaré el segundo segmento de opciones, y luego explicaré que opción sirve para cada cosa en el texto:
TEXT
${color ffffff}${font PizzaDude Bullets:size=14}v${font} ${voffset -3}Up ${upspeed eth0} Kb/s
${voffset 3}${color ffffff}${font PizzaDude Bullets:size=14}r${font} ${voffset -2}Down ${downspeed eth0} Kb/s
${color ffffff}${font PizzaDude Bullets:size=14}M${font} ${voffset -3}Subido ${totalup eth0}
${voffset 3}${color ffffff}${font PizzaDude Bullets:size=14}S${font} ${voffset -3}Bajado ${totaldown eth0}

${color ffffff}${font StyleBats:size=15}Q${font} ${voffset -4}CPU ${cpu cpu0}% ${cpubar cpu0}
${voffset 2}${color ffffff}${font StyleBats:size=15}X${font} ${voffset -4}RAM $mem / ${memperc}%
${voffset 3}${color ffffff}${font StyleBats:size=15}B${font} ${voffset -4}Swap $swap / ${swapperc}%

${font StyleBats:size=15}P${font} ${voffset -3}Linux ${uptime_short}

${color ffffff}${font Radio Space:size=13}${time %A %d}
${font Radio Space:size=14}${time %H:%M}

Ahora voy a explicar las variables utilizadas (en negrita) en el texto, de arriba a abajo:
  • upspeed: Velocidad de subida (Internet).
  • downspeed: Velocidad de bajada (Internet).
  • totalup: Total datos subidos (Internet).
  • totaldown: Total datos bajados (Internet).
  • cpu: Uso de CPU (procesador).
  • mem: Uso de memoria RAM.
  • swap: Uso de memoria Swap.
  • uptime_short: Tiempo que lleva prendida la máquina (computador).
  • time %A %d: Fecha actual.
  • time %H:%M: Hora y minuto actual.

Los textos menos relevantes en cursiva se pueden modificar a gusto. Y siempre recordar que se pueden agregar todas las variables y combinaciones que quieran, y que se muestran en el sitio oficial de Conky. Todas las variables aquí.

Bueno, antes de guardar todo, tienen que bajar esta carpeta (descomprimirla, es un zip), esa carpeta incluye todas las fuentes de letras que se encuentran en el texto de configuración, esa carpeta se llama: .fonts
Y irá guardada en su carpeta de usuario (/home/usuario/.fonts).

Ahora si, juntarán los dos segmentos que he dado, y guardarán esos dos textos en el archivo: .conkyrc

O mejor aún, bajen desde este enlace el archivo de configuración listo para guardar y utilizar.

Configuración avanzada


En este punto no tocaremos el primer segmento de comportamiento de la ventana, ya que está lista. Ahora se verá el clima, las temperaturas del procesador, disco duro, y placa madre, y finalmente ver los nuevos correos que han llegado a su cuenta de Gmail.

Todos estas opciones avanzadas necesitan de scripts (lineas de comandos y operaciones creadas para ejecutarse en un archivo) para luego ser ejecutadas externamente. Todos los scripts se guardarán en una carpeta bajo el nombre: scripts
Y irá guardada en su carpeta de usuario (/home/usuario/scripts).

Clima de tu ciudad

La opción de clima funcionará gracias a un script externo a Conky, ya que ese script contiene las ordenes para consultar al sitio de Yahoo! Weather sobre el estado del clima en la ciudad especificada en el script, ese script se llama: pogodynka.sh
Y el script se puede bajar desde este enlace. Y mencionar que aquel script viene por defecto con el clima de la ciudad de Santiago, Chile. También requerirán de otro script (conditions.sh) para que funcione debidamente, y lo pueden descargar desde este enlace.

¿Y como puedo agregar otra ciudad?
Fácil, se dirigen a Yahoo! Weather, y en el cuadro que indica "Enter city or zip code" escriben su ciudad y país, para luego copiar el código que aparecerá arriba en el cuadro de direcciones URL. Por ejemplo, si buscaran "Ciudad de Buenos Aires, Argentina", aparecerá esta dirección: http://weather.yahoo.com/forecast/ARBA0107.html

De esa dirección solamente copian este código: ARBA0107
Y ese código se pega en el script "pogodynka.sh" justo en la línea de texto que aparece lo siguiente: kod=
Y que quedaría finalmente de esta manera: kod=ARBA0107
Y listo, se guardan los cambios.

La línea de opciones y variables en el archivo de configuración ".conkyrc" quedaría algo así:
${color ffffff}${font weather:size=28}${execi 600 ~/scripts/conditions.sh}${color ffffff}${font Radio Space:size=14}${voffset -9}${execi 1200 ~/scripts/pogodynka.sh}

Esa linea completa va justo después de la palabra "TEXT" en el archivo de configuración, y listo.

Instalar y configurar lm-sensors

Antes que nada, necesitan instalar el programa "lm-sensors", que ayudará a examinar la temperatura del procesador, disco duro y placa madre. Muy necesario para que encuentre los sensores de su hardware.

El programa "lm-sensors" se utiliza para examinar la temperatura del hardware, y se puede descargar desde los repositorios de su distro. Por una terminal en Ubuntu sería así:
sudo aptitude install lm-sensors

Si no tienen lm-sensors en sus repositorios (que es poco probable que eso ocurra), pueden descargar el código fuente desde su sitio oficial (archivo 2.10.8.tar.gz, o el .tar.gz más nuevo que salga). Las librerías recomendadas a instalar, antes de instalar el código fuente de lm-sensors, se pueden descargar desde los repositorios, así:
sudo aptitude install bison cook flex sysfsutils libsysfs-dev libsysfs2

Ahora a instalar el código fuente con dos lineas de comandos:
sudo make user
sudo make user_install

Lo último es solo para el código fuente, si tienen lm-sensors en sus repositorios, no es necesaria la parte de código fuente, ya que bajará todas las librerías automáticamente.

Ahora que se encuentra instalado lm-sensors, se configurará por terminal para que detecte los componentes y sensores de su hardware. Y en Ubuntu sería así:
sudo sensors detect

Inmediatamente el sistema de configuración empezará con una serie de preguntas técnicas, solamente tipeen una "y", para confirmar la pregunta (yes). Después de terminar la configuración de sensores, añadirán el modulo en el inicio del sistema. Y mencionar que justo antes de finalizar la configuración de sensores arriba, aparecerá algo como esto:
#—-cut here—-
# Chip drivers
modprobe coretemp
# sleep 2 # optional
/usr/local/bin/sensors -s
#—-cut here—-

Eso, o lo que les aparezca al final de la configuración de sensores, lo tienen que añadir al archivo de módulos,  (ojo, añadir al archivo, no reemplazar lo que se encuentre en ese archivo), así que abrirán el archivo de módulos (el comando mousepad es un editor de texto de Xfce, en GNOME existe el editor gedit):
sudo mousepad /etc/modules

Creo que esto último de agregar los módulos ni siquiera es necesario, ya que parece (y si mi memoria no falla) los módulos de lm-sensors se agregan automáticamente al archivo de módulos, creo. Y ahora reinician la máquina (computador) y listo.

Esto nada que ver con Conky, pero si quieren seguir echandole el ojo a lm-sensors, pueden instalar un "applet" para así poder ver las temperaturas donde queramos en nuestra barra de herramientas:
sudo aptitude install sensors-applet

Temperatura del procesador

La temperatura del disco duro también requiere de un script externo llamado: ColorTempCPU.sh

Ese script se puede descargar desde este enlace.

La linea de opciones en el archivo de configuración de Conky quedaría así:
${color ffffff}${font weather:size=39}x${font}  ${voffset -31}CPU  ${color5}${execpi 8 sensors | grep 'CPU Temp' | cut --characters 15-16 | xargs ~/scripts/ColorTempCPU.sh}°$color

Temperatura del disco duro

La temperatura del disco duro también requiere de un script externo llamado: hddmonit.sh

Ese script se puede descargar desde este enlace.

La temperatura del procesador también requiere de lm-sensors, pero la instalación y configuración ya fue vista arriba, así que nos saltaremos eso. Eso si, necesitaremos de otra aplicación llamada "hddtemp", y se instala de la siguiente manera por una terminal:
sudo aptitude install hddtemp

Y eso solamente, no hay que configurar nada en hddtemp, como ya fue instalado, ahora vamos a como se verían las opciones en el archivo de configuración de Conky:
${color ffffff}HDD ${execi 1 ~/scripts/hddmonit.sh}°

Temperatura de la placa madre

El monitor de temperatura de la placa madre, utiliza el mismo scritp de la temperatura del procesador, que es este: ColorTempCPU.sh

El script lo pueden descargar arriba, pero para los que andan apurados también lo pueden descargar desde este mismo enlace (igual al de arriba).

La linea de opciones en el archivo de configuración quedaría así:
${color ffffff}M/B  ${color5}${execpi 8 sensors | grep 'M/B Temp' | cut --characters 15-16 | xargs ~/scripts/ColorTempCPU.sh}°$color

Viendo correos de Gmail

Para ver los correos nuevos que han llegado a nuestra cuenta de Gmail, se necesitará de un script externo creado en lenguaje de programación Python, y que se llama: gmail_parser.py

Este script en Python se puede ver fácilmente en cualquier editor de texto (o en BlueFish para re-programarlo), y para su seguridad (y la mía) no tomará ningún dato de transferencia como correos y contraseña del usuario, ya que todo eso lo pueden confirmar ustedes mismos viendo el código fuente del archivo en un editor de texto.

El script de Gmail lo pueden descargar desde este enlace.

La línea de opciones en el archivo de configuración de Conky quedaría de la siguiente manera:
${color F8DF58}${font FreeSans:size=16}@${font}${execpi 300 python ~/scripts/gmail_parser.py tu-usuario-de-gmail@gmail.com contraseña-de-gmail 3}

Vean bien lo que está escrito en negrita, ya que eso se debe reemplazar por los datos que pide.

Con esto finaliza la configuración avanzada con el uso de scripts externos, y recordar nuevamente que todos los scripts dados se guardan en la carpeta "scripts", en tu carpeta de usuario, en que solo tu tendrás permiso de acceso (/home/usuario/scripts).

Consejos


Si quieren que Conky se ejecute automáticamente al prender el sistema, y con ello evitar el procedimiento de estar siempre tecleando al prender el sistema: Alt + F2. (y después tipear: conky). Para no hacer eso, harán algo más sencillo.

Para que Conky se inicie siempre con el sistema crearán un rápido script, abran un editor de texto y copian esto:
#!/bin/bash
sleep 10 && conky

El script lo guardan bajo el nombre: ini-conky
El script lo pueden guardar en su carpeta de usuario (/home/usuario/ini-conky) o en la ruta de ejecutables de usuarios en: /usr/local/bin/ini-conky

Y por supuesto que tienen que dar permisos de ejecución al script "ini-conky":
sudo chmod +x ini-conky

Ahora para que tienen el script guardado en la carpeta "bin", solamente se dirigen a "Sesión e inicio" (si es que lo tienen instalado), y ahí van a autoarranque de aplicaciones y añaden una nueva aplicación, y agregan el comando ini-conky en la casilla de comando, y colocan el mismo nombre cuando pida el nombre.

Si decidieron guardar el script en su carpeta de usuario, solo agreguen la ruta en donde se encuentra. Así que escriben en la casilla de comandos lo siguiente: /home/usuario/ini-conky

En GNOME, KDE y Xfce, eso funciona de maravilla aunque en Xfce se demora en abrirlo, ya que espera esos 10 segundos (pueden ser mas o menos) para cargar el escritorio.

Y así finaliza esta guía explicatica y configuración de Conky, y recordando finalmente que existen decenas de variables disponibles en Conky, y sus configuraciones son varias, solamente es cosa de buscar en Google sobre configuraciones de usuarios, y ver que les puede servir, en los foros de Linux siempre se encuentran temas relacionados con este excelente monitor de sistema ligero y rápido.