Desde la versión 0.12.4, tint2 incorpora un nuevo plugin llamado Executor, con el cual podemos hacer cosas muy interesantes, como por ejemplo poder manejar varias opciones para Audacious, además de visualizar diversa información sobre la canción en uso. Y todo desde el mismo panel.
Por tanto si estas interesado en este tip comprueba primeramente tu versión de tint2, que deberá ser 0.12.4 o superior, para esto simplemente vete a un terminal y ejecuta el siguiente comando,
$ tint2 --version
si todavía no dispones de esa versión comprueba tus repositorios Backports de BunsenLabs.
Tras esto pasamos ya a la edición de nuestro configuración de tint2 en uso, disponible en ~/.config/tint2. Conviene como siempre antes de hacer nada, que hagamos alguna copia de la configuración de tint2 que vamos a modificar. Para ello puedes utilizar la utilidad Blob Themes Manager desde la opción Accesorios del Menú.
Editamos por tanto desde la opción disponible en Menú para ello.
Navegamos hasta la sección correspondiente al Systray por ejemplo, para añadir los parámetros que necesitamos. Aunque realmente no tiene porque ser ahí precisamente, simplemente por claridad, y guardando el orden lógico en que se visualiza todo, es recomendable que se haga aquí.
# Execp 1: Player audacious execp = new execp_centered = 0 execp_has_icon = 1 execp_cache_icon = 0 execp_icon_w = 16 execp_icon_h = 16 execp_command = audacious.sh 0 50 execp_interval = 2 execp_font = URW Gothic L 9 execp_font_color = #ffffff 100 execp_background_id = 7 execp_padding = 2 0 2 execp_lclick_command = audtool --playback-playpause execp_rclick_command = audtool --mainwin-show execp_mclick_command = audtool --shutdown execp_uwheel_command = amixer -c 0 sset Master 2%+ execp_dwheel_command = amixer -c 0 sset Master 2%- execp_tooltip =
Es conveniente que conozcamos cada uno de los parámetros disponibles para saber todas sus posibilidades. Vemos algunos de los más importante,
- execp_has_icon = 1 : Vamos a utilizar dos iconos para conocer si el reproductor esta en marcha o en pausa. En este caso deberá tener el valor 1, en el caso de no utilizar iconos deberemos poner el valor 0. Os dejo a continuación los iconos que deberéis bajar y poner en vuestra carpeta ~/. icons/. De no existir, la creamos.
- execp_icon_w = 16 y execp_icon_h = 16 : Que corresponde a la anchura y altura del icono. Que dependiendo de las dimensiones de nuestro panel nos podrá interesar definir algún otro tamaño.
- execp_command = audacious.sh 0 50 : Aquí pondremos los comandos a ejecutar por defecto tras el funcionamiento del panel. Como en este caso vamos a utilizar un numero considerable, mejor creamos un script. Este script admite dos parámetros de entrada el primero (0), este corresponde a las lineas a visualizar, normalmente y dependiendo de nuestro panel, vamos a necesitar 1 sola linea, por tanto aquí tendremos los valores (0 cero) o (1 uno). El segundo corresponde al ancho del literal a visualizar del grupo, canción, tiempo actual y tiempo total de la canción actual.
- execp_interval = 2 : Se refiere al intervalo en segundos que se deberá ejecutar el parametro execp_command.
- execp_font = URW Gothic L 9, execp_font_color = #ffffff 100, execp_background_id = 7, execp_padding = 2 0 2 : Estos se refieren al aspecto que deberá tener esta tarea cuando aparezca en el panel y todos ellos dependerán de algunos aspectos definidos en esa configuración. Respectivamente serían Font a utilizar, el Color del literal en este caso #ffffff 100, sería el color blanco sin opacidad, el color del background, mirar los que tenemos definidos para el panel, posiblemente tendréis valores como el 0 o 1 y por último el correspondiente a la separación entre los elementos.
- execp_lclick_command = audtool –playback-playpause : Comando a utilizar cuando se produce el evento de haber pulsado el botón izquierdo del ratón. Con esto detendremos o pondremos en marcha Audacious.
- execp_rclick_command = audtool –mainwin-show : Comando cuando el botón derecho del ratón se ha pulsado. Mostrará Audacious, si éste se encontrara oculto por alguna circunstancia.
- execp_mclick_command = audtool –shutdown : Aquí cerraría el programa, cuando sea pulsado el boton central del ratón.
- execp_uwheel_command = amixer -c 0 sset Master 2%+ : Cuando subimos con la rueda del ratón, subirá el sonido.
- execp_dwheel_command = amixer -c 0 sset Master 2%- : Cuando bajamos con la rueda del ratón, bajará el sonido.
Lógicamente para estos cinco últimos parámetros deberemos estar posicionados con el ratón en la tarea de Audacious que se muestra en tint2. También decir que solamente aparecerá siempre y cuando tengamos en ejecución el reproductor, apareciendo en blanco en caso contrario.
Ahora necesitamos decirle a tint2 que active y donde tiene que visualizar esta nueva configuración correspondiente al plugin Executor.
Para ello nos vamos a la sección correspondiente al panel utilizando el parámetro panel_items e insertamos la letra E mayúscula en el lugar que deseamos que sea visualizado. Para ello la insertamos, como en el ejemplo entre el (T)askbar y el (S)ystray. Tras todos estos cambios ya podemos guardar todos los cambios realizados.
# Panel panel_items = LTESC
Vamos con el script que llamaremos audacious.sh que utiliza el parámetro execp_command, y que será el encargado de visualizar los iconos y diversa información correspondiente a la canción actual.
#!/bin/bash # Obtiene información de audacious, la formatea a una longitud máxima definida # Luego intenta separar la cadena en un número definido de líneas, # respetando los límites de las palabras (solo espacios en blanco normales) # La primera línea devuelve la ruta a un ícono, para usar con el complemento tint2/execp me="$(basename "$0")" icon1="$HOME/.icons/pause.png" icon2="$HOME/.icons/play.png" maxlen="$2" # Longitud máxima de la cuerda antes de dividir en líneas lines="$1" # Es mejor si maxlen% lines es 0 tmp_dir="/tmp" function only_me_or_exit { # Asegúrese de que solo se esté ejecutando 1 instancia touch "$1" read lastPID < "$1" # Si lastPID no es nulo y existe un proceso con ese pid, salir [ ! -z "$lastPID" -a -d /proc/$lastPID ] && { echo "Ya se está ejecutando una instancia de $me con pid $lastPID." ; exit 1 ; } # else - Guardar pid en el archivo de bloqueo y continuar echo $$ > "$1" } function exit_only_me { rm "$pidfile" exit } function otherinfo_func { # Obtener el tiempo actual y total de la canción iCurrentTime="$(audtool --current-song-output-length)" iTotalTime="$(audtool --current-song-length)" echo "${iCurrentTime}/${iTotalTime}" } function join_maxlen_func { # 2 strings - $1 y $2 - no pasar $maxlen de caracteres # pero la primera cuerda debe acortarse, no la 2da. dots="" [ ${#1} -gt $((maxlen - ${#2})) ] && dots="..." echo "${1:0:((maxlen - ${#dots} - ${#2}))}$dots $2" } function lines_func { string="$1" for (( ; lines > 1 ; lines-- )) do length=${#string} for (( fwd=$((length/lines)) , bwd=$((length/lines)) ; bwd >= 0 ; fwd++ , bwd-- )) do if [[ "${string:$fwd:1}" = " " ]] then echo "${string:0:$fwd}" string="${string:$((fwd + 1))}" break fi if [[ "${string:$bwd:1}" = " " ]] then echo "${string:0:$bwd}" string="${string:$((bwd + 1))}" break fi #~ "${string:$bwd:1}" #~ wordlength done done echo "$string" } # Solo se tiene que ejecutar 1 sola instancia pidfile="$tmp_dir/${me}_pid" only_me_or_exit "$pidfile" if pidof audacious >/dev/null then status="$(audtool --playback-status)" infostring="$(audtool --current-song)" case "$status" in "playing") echo "$icon2" lines_func "$(join_maxlen_func "$infostring" "$(otherinfo_func)")" exit_only_me ;; "paused") echo "$icon1" lines_func "$(join_maxlen_func "$infostring" "$(otherinfo_func)")" exit_only_me ;; esac fi echo # no icon for uptime? exit_only_me
Que copiamos y pegamos en nuestros editor y lo guardamos en la carpeta ~/bin/ . Dando a continuación los correspondientes permisos de ejecución al script.
$ cd $ cd bin $ chmod +x audacious.sh
Si estas utilizando otra distro y no tienes esa carpeta, la puedes crear o dejar en algún otro sitio, pero necesitarás especificar a ese parámetro el PATH completo, en caso de no estar incluido en esa variable de entorno, por ejemplo,
execp_command = /usr/local/bin/audacious.sh 0 50
Pues ya estaría todo, solo faltaría lanzar Audacious y refrescar el panel, para hacer esto último tenemos opción en Menú,
Para más información sobre el plugin Executor, puedes acudir al correspondiente hilo del forum, donde puedes obtener muchas ideas, ejemplos y recursos a utilizar para tus propias configuraciones de tint2. Que gracias a todos estos recursos ha sido posible realizar esta utilidad para Audacious.
Os dejo también la descarga, tanto de la configuración del tint2 utilizado, como del script audacious.sh, por si habéis tenido algún problema al realizar este tip.