Escitorio Abril [conky-3]


Bueno, continuando con la configuración de nuestros conky's llegamos al tercero en orden de "complejidad" vamos a ver los parámetros if.


he de aclarar que yo uso un script antiguo para manejar el reproductor de moc, lo agregué cuando aún tenía el conky 1.6 y he de decir que ahora existen funciones de conky que hacen lo del script, explicare algunas a cambio de mostrar el script (que ahora es inútil, sin embargo lo sigo usando con unas pequeñas modificaciones) para más referencias acerca de mi script, pueden ver el este post


Imagen de conky cuando moc no está reproduciendo.

bueno, vamos a tema:

use_xft yes
#on_bottom yes
own_window yes
own_window_type override
own_window_transparent yes
#own_window_hints undecorated,bellow,sticky,skip_taskbar,skip_pager
xftalpha 0.8
minimum_size 140 38
# Alineación del texto
alignment top_left
# Separación de los bordes del escritorio
gap_x 50
gap_y 810
double_buffer yes
TEXT
${goto 25}${if_running mocp}${font Finder - Regular:size=16}${color #00ff0a}Moc Player
${font Sophie - Regular:size=10}${color #ffffff}${goto 57}${exec /home/cesar/.Conkyrc/mocconky.sh}
${exec /home/cesar/.Conkyrc/moccover.py}${image /home/cesar/.album -p 0,35 -s 64x64 -f 1}
${else}${font Finder - Regular:size=16}${color #00ff0a}Multimedia
${goto 25}${font Sophie - Regular:size=10}${color #ffffff}No playing...
${endif}${image /home/cesar/Plantillas/Globo.png -p -2,-1 -s 140x38}

he colocado en negrita la sentencia ${if_runing Programa}, una sentencia simple que nos indica de cierta forma que, si se ejecuta cierta aplicación conky tomará un conjunto de instrucciones a imprimir, en caso contrario realizará lo que se coloque luego de la sentencia ${else} muy útil cuando deseamos que se realicen distintas acciones, en este caso, el objetivo es a futuro implementar información de otros reproductores o aplicaciones, ejemplo mplayer, finalizamos las instrucciones del if o del else -no necesariamente debe existir el ${else}- colocando un ${endif}.

una vez se ejecuta la aplicación, en este caso el reproductor moc la imagen que vemos en conky cambiará:

de acuerdo al script que tengo, mientras no se ejecute ninguna canción, en conky se mostrará un mensaje de no reproducción; mensaje que es devuelto de un script, que se ejecuta a través de la sentencia ${exec /path/to/scritp.sh} la sentencia podría ser ejecutada múltiples veces si fuera necesario reemplazando "exec" por "execi #" donde el número es el lapso de tiempo de ejecución.

Como se puede ver, también ejecuto un pequeño script en python (moccover.py) y luego muestro una imagen de nombre .album código que colocaré a continuación:

#!/usr/bin/python

import os,commands, urllib

home = os.getenv("HOME")
artist=commands.getoutput("mocp -Q %artist").replace(" ", "+")
album=commands.getoutput("mocp -Q %album").replace(" ", "+")
if artist == "" and album == "":
if os.path.exists(home + "/.album"):
os.remove(home + "/.album")
else:
url = "http://www.albumart.org/index.php?srchkey=" + artist + "+" + album + "&itempage=1&newsearch=1&searchindex=Music"
albumart = urllib.urlopen(url).read()
image = ""
for line in albumart.split("\n"):
if "http://www.albumart.org/images/zoom-icon.jpg" in line:
image = line.partition('src="')[2].partition('"')[0]
break
if image:
if os.path.exists("/tmp/imagepath") and os.path.exists(home + "/.album"):
imagepath = open("/tmp/imagepath").read()
if imagepath == image:
pass
else:
urllib.urlretrieve(image, home + "/.album")
else:
urllib.urlretrieve(image, home + "/.album")
open("/tmp/imagepath","w").write(image)
else:
if os.path.exists(home + "/.album"):
os.remove(home + "/.album")

el script fue proporcionado de este sitio web, muchas gracias :)
lo que hace dicho script es ir a la web albumart y busca en él el cover de la canción que se ejecuta, para luego guardarla como imagen con nombre .album en nuestro home, con un poco de conocimiento en python podemos o modificar el script o bien realizar nosotros mismos muchos otros con distintas funcionalidades.



ahora bien, en la sentencia siguiente, como vimos antes, es la sentencia ${image /path/to/image} sin embargo agregamos la instrucción -f 4 que nos refrescará la imagen cada minuto.

ya para terminar colocamos el caso en el que no se ejecute el programa, y terminamos agregando una última imagen, nuevamente igual que el cuadro del .conkyrc_rss es únicamente un detalle visual.

recuerden que conky soporta imágenes con transparencias, para dicha nuestra =)

ahora, con respecto a moc, como mencione en el comienzo del artículo, conky ya ha implementado variables propias para mostrar la información del artista, album, canción, tiempo, etc de este reproductor, acá un par de funciones:

${moc_album}
que nos mostrará el nombre del album de la canción que se reproduce actualmente.
${moc_timeleft} nos muestra el tiempo que queda antes de terminar la canción actual.

así mismo hay muchas más opciones; moc_artist, moc_totaltime, moc_state, moc_song, etc que nos pueden ser útiles para mezclarlas con otras opciones, ejemplo realizar un anillo que se llene a medida que la canción va progresando, y se llene cuando esta termine, a través de un script en lua, ¡las opciones alcanzan a ser infinitas!

ya solo falta el último conky, que implementa código lua para realizar los anillos, pero será para la siguiente entrega.

Comentarios

Entradas populares