CONKY en la barra de I3

En este post veremos una aplicación de conky para lanzar todo el output en la barra de I3. No pretende ser un estudio exhaustivo de conky (el cual daría para un auténtico ratazo) sino simplemente como hacer que I3 nos muestre los datos de nuestro conkyrc.

Para hacer esto, hay 2 formas. Por un lado, la fácil, y por el otro, una más compleja pero que nos permitirá añadir colores y darle un poco de vida a la barra.
Hay unas pocas cosillas que debemos tener en cuenta, así que empezaremos por los parámetros de conky necesarios para poder sacar los datos en terminal.

Tanto si habitualmente usamos la versión “ventana” (std) de conky o la de consola (cli), nos bastará con estas opciones al inicio como obligatorias:

out to x no
own window no
background no
out to console yes
total run times 0

Opcionalmente, podemos añadirle más parámetros para dejarlo completo:

max text width 0
short units yes
use spacer left
override utf8 locale no
cpu avg samples 2

Pero esto, son sólo los parámetros. Para los objetos, la cosa cambia.
Si queremos un conky clásico, nos sirve la sintaxis tradicional. Por ejemplo, podemos crear un conkyrc como el ejemplo de abajo:

out to x no
own window no
background no
out to console yes
total run times 0
max text width 0
short units yes
override utf8 locale no
cpu avg samples 2

TEXT
${kernel} \
${time %d/%m} \
${time %H:%M} \

Y probarla como:

conky -c /ruta_del_archivo

Una vez tenemos nuestro conky ya configurado a nuestro gusto (Pegaré el mío al final, como de costumbre) simplemente nos vamos a nuestro archivo de configuración de I3 y buscamos la sección de la barra. Una vez allí, en “status command” lo modificamos y dejamos así:

status_command conky -c ruta_del_archivo

Fácil y sencillo. Pero soso a más no poder. El problemilla de esto, es que no permite más color que uno. Para poder tener colores, tenemos que adaptar el conkyrc al formato JSON. Para empezar, necesitamos un script que lance un conky algo “distinto” y adaptado a este formato.

mkdir ~/bin
nano ~/bin/conkyrc_i3bar
sudo nano /usr/bin/conkyi3bar

Dentro de /usr/bin/conkyi3bar meteremos esto:

#!/bin/sh
echo ‘{“version”:1}’
echo ‘[‘
echo ‘[],’
exec conky -c ~/.conkyrc_i3bar

Y, partiendo del ejemplo de conky de antes, vamos a adaptarlo para nuestro ~/bin/conkyrc_i3bar en JSON:

[{ “full_text” : “Kernel ” , “color” : “\#4992b7” },
{ “full_text” : “${kernel} ” , “color” : “\#e1e1e1” },
{ “full_text” : “Fecha ” , “color” : “\#4992b7” },
{ “full_text” : “${time %d/%m} ” , “color” : “\#e1e1e1” },
{ “full_text” : “Hora ” , “color” : “\#4992b7” },
{ “full_text” : “${time %H:%M} ” , “color” : “\#e1e1e1” }],

Ahora, en nuestro ~/.config/i3/config, nos vamos de nuevo a “status_command” y lo dejamos así:

status_command /usr/bin/conkyi3bar

Nos queda guardar la configuración de I3, y reiniciarlo (Los keybinds normales son Win+Shift+c y Win+Shift+r). Si todo está bien hecho, nuestra barra de i3 tendrá 3 valores en colores distintos.

Y ahora, un extra.

Pese a que no lo tengo demasiado dominado y aún estoy peleándome con la codificación (Porque la fuente me da problemillas) hay una forma para que, en vez de texto, tengamos iconos en nuestra barra. Para ello usaremos fontawesome, la cual es una fuente de iconos, gratuita en la versión básica, y que tenemos disponible en nuestros repositorios mediante el comando clásico:

sudo apt-get install fonts-font-awesome

Una vez lo tenemos instalado, nos vamos a la cheatsheet de fontawesome, y podremos copiar y pegar los iconos que necesitemos.
Este es mi conkyrc. En donde veamos el código, pegaremos el icono que más nos guste:

out_to_x no
own_window no
out_to_console yes
background no
max_text_width 0
update_interval 2.0
total_run_times 0
short_units yes
use_spacer left
override_utf8_locale no
cpu_avg_samples 2

TEXT

[{ “full_text” : “” , “color” : “\#4992b7” },
{ “full_text” : “${execi 10 ~/bin/mocp.sh | fold -w55 -s} ” , “color” : “\#e1e1e1” },
{ “full_text” : “” , “color” : “\#4992b7” },
{ “full_text” : “${cpu cpu1}% ” , “color” : “\#e1e1e1” },
{ “full_text” : “” , “color” : “\#4992b7” },
{ “full_text” : “${memperc}% ” , “color” : “\#e1e1e1” },
{ “full_text” : “” , “color” : “\#4992b7” },
{ “full_text” : “${kernel} ” , “color” : “\#e1e1e1” },
{ “full_text” : “” , “color” : “\#4992b7” },
{ “full_text” : “${fs_used_perc /home}% ” , “color” : “\#e1e1e1” },
{ “full_text” : “” , “color” : “\#4992b7” },
{ “full_text” : “${fs_used_perc /}% ” , “color” : “\#e1e1e1” },
{ “full_text” : “” , “color” : “\#4992b7” },
{ “full_text” : “${fs_used_perc /media/almacen}% ” , “color” : “\#e1e1e1” },
{ “full_text” : “” , “color” : “\#4992b7” },
{ “full_text” : “${exec amixer get Master -M | grep -oE “[[:digit:]]*%”} ” , “color” : “\#e1e1e1” },
{ “full_text” : “” , “color” : “\#4992b7” },
{ “full_text” : “${execi 300 /home/nacho/bin/weather.sh “EUR|ES|GM000|Ciudad_que_corresponda”} ” , “color” : “\#e1e1e1” },
{ “full_text” : “” , “color” : “\#4992b7” },
{ “full_text” : “${time %d/%m} ” , “color” : “\#e1e1e1” },
{ “full_text” : “” , “color” : “\#4992b7” },
{ “full_text” : “${time %H:%M} ” , “color” : “\#e1e1e1” }],

Y estos son los 2 scripts que muestran Music On Console y el tiempo.

weather.sh (Cortesía de Michael Seiler y la maravillosa documentación de Arch)

#!/bin/sh
#AccuWeather (r) RSS weather tool for conky
#
#USAGE: weather.sh
#
#(c) Michael Seiler 2007

METRIC=1 #Should be 0 or 1; 0 for F, 1 for C

if [ -z $1 ]; then
echo
echo “USAGE: weather.sh ”
echo
exit 0;
fi

curl -s http://rss.accuweather.com/rss/liveweather_rss.asp\?metric\=${METRIC}\&locCode\=$1 | perl -ne ‘if (/Currently/) {chomp;/\<title\>Currently: (.*)?\<\/title\>/; print “$1”; }’

mocp.sh (También sacado de Arch)

#!/bin/sh

TITLE=”`mocp -i | grep ‘Title:’ | sed -e ‘s/^.*: //’`”;
if [ “$TITLE” != “” ]; then
ARTIST=”`mocp -i | grep ‘Artist:’ | sed -e ‘s/^.*: //’`”;
SONGTITLE=”`mocp -i | grep ‘SongTitle:’ | sed -e ‘s/^.*: //’`”;
ALBUM=”`mocp -i | grep ‘Album:’ | sed -e ‘s/^.*: //’`”;
if [ “$ARTIST” != “” ]; then ARTIST=”$ARTIST – “; fi
if [ “$ALBUM” != “” ]; then ALBUM=”($ALBUM)”; fi
echo $ARTIST $SONGTITLE $ALBUM
else echo MOC Off
fi

Espero que os sirva, y si alguien lee este blog, se agradecen aportes al respecto.

2017-02-28-001322_1920x1080_scrot

2017-02-28-001524_1920x1080_scrot

Anuncios

2 comentarios en “CONKY en la barra de I3

  1. En busca de la nunca lograda combinación perfecta para mi i3blocks, aplicare parte de tu configuración… Gracias por compartir.

    PD. Tu perfil de hipertextual me condujo hacia acá.

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s