Conky : Scripts Multimédia

Compléments à la documentation Conky
Les codes donnés ci dessous sont à placer après la section TEXT de votre conkyrc
Références des Variables

Si vous desirez juste sur votre Conky, ce que vous ecoutez sur Rhythmbox, voici la portion à rajouter dans votre .conkyrc

${color lightgrey}Now Playing :
${exec rhythmbox-client --print-playing}

Pour une version plus complète, il suffit de regarder le manuel de rhythmbox-client pour imaginer

${color lightgrey}RhythmBox Now Playing :
${alignc}${exec rhythmbox-client --print-playing-format "%ta - %at"}
${alignc}${exec rhythmbox-client --print-playing-format "%tn - %tt"}

Les différents scripts conky pour Rhythmbox lancent Rhythmbox pour récupérer des informations sur le morceau en cours. Cela peut ralentir votre ordinateur, et laisse Rhythmbox en marche, ce qui n'est pas forcément utile. On peut remédier à ce problème en insérant le code suivant autour des commandes qui récupèrent les informations sur Rhythmbox.

${if_running rhythmbox}
# commandes en relations avec Rhythmbox
$endif

Afficher la pochette du CD

Il existe aussi un script (que j'ai créé à l'instant)1), assez basique, qui permet de récupérer les pochettes des CD depuis le dossier ~/.cache/rhythmbox/covers/. Il fonctionne à l'aide d'un petit script bash.
Script "conky_album_cover"

#!/bin/bash

album=$(rhythmbox-client --print-playing-format "%ta - %at")
fichier="$HOME/.cache/rhythmbox/covers/$album.jpg"

if test -s "$fichier"
then
	ln -sf "$fichier" "$HOME/.conky_cover.jpg"

else
	if test -s "$HOME/.conky_cover.jpg"
	then
		rm "$HOME/.conky_cover.jpg"
	fi
fi

Et pour votre .conkyrc

${exec ~/.script/conky_album_cover}${image ~/.conky_cover.jpg -n -p 240,640 -s 64x64}
Remplacez 240 et 640 par les coordonnées de l'endroit où afficher la pochette, et adapter l'adresse du script.

Afficher une barre de progression

conky_rhythmbox_bar2)

#!/bin/bash
#Par Ph3nix_

convert_sec() {
	min=`echo $1 | cut -d':' -f1`
	sec=`echo $1 | cut -d':' -f2`
	[ ${sec:0:1} = '0' ] && sec=${sec:1:2}
	res=$((min*60+sec))
}
convert_sec $(rhythmbox-client --print-playing-format "%te")
now=$res
convert_sec $(rhythmbox-client --print-playing-format "%td")
[ $res -eq 0 ] && echo 0 && exit
echo ` echo "$now*100/$res" | bc -l`

.conkyrc

${execbar ~/.script/conky_rhythmbox_bar}

Depuis la version Audacious2, audtool est passé a la version audtool2 .Script a modifier !

Audacious intègre un outil dédié très pratique : "audtool". Celui-ci fourni des informations console qui peuvent être utilisé ensuite pour des programmes tels que Conky.

Pour cela, il faut rajouter des "exec audtool <commande>" dans votre script, par exemple :

${color #e49c16}Audacious:${color white}     ${exec audtool --current-song-length}    ${exec audtool --current-song-bitrate-kbps} kbps
${exec audtool --current-song | cut -b-50}
${color #ffc11f}${execbar expr 99 \* $(audtool --current-song-output-length-seconds) \/ $(audtool --current-song-length-seconds)}

Pour plus de commandes :

man audtool

Attention tout de même, si Audacious n'est pas lancé, vous aurez des messages d'erreur. Ceux-ci peuvent déformer Conky, alors pour éviter cela, il faut bidouiller l'argument "maximum_width" dans l'en-tête (350 semble être une valeur correcte pour du 1024*768 :)).

Moi j'ai une formule simple pour éviter le message d'erreur : ${if_running audacious} au début de la partie "audacious", puis on ajoute à la fin de cette partie : $endif on pourra "bidouiller" pour rajouter des choses comme une barre etc… mais ça je sais pas faire.

Ainsi on peut faire comme conseillé sur un site anglais :

${if_running audacious}
${color black}AUD:${color #C0C8CD} ${exec audtool --current-song | cut -b-34}
${color #C0C8CD} ${exec audtool --current-song-bitrate-kbps} kbps * ${exec audtool --current-song-length} ${execbar expr 100 \* $(audtool --current-song-output-length-seconds) \/ $(audtool --current-song-length-seconds)}
${color black}${hr 2}$endif

Selon les versions d'audacious, ${if_running audacious} doit être remplacé par ${if_running audacious2}

Afficher la pochette du CD avec Audacious

Si vous souhaitez rajouter la pochette du CD, voici un petit script (en reprenant le script plus vu plus haut)

#!/bin/bash
IFS=$'\n'
coverPath=$HOME$(audtool --current-song-tuple-data file-path | sed -e 's/~//')
image=$(ls -1 $coverPath | grep '\.\(jpg\|jpeg\)' | grep -m 1 '.*')
fullPath=$coverPath/$image

if test -s "$fullPath"
then
	ln -sf "$fullPath" "$HOME/.conky_cover.jpg"

else
	if test -s "$HOME/.conky_cover.jpg"
	then
		rm "$HOME/.conky_cover.jpg"
	fi
fi

Pour le .conkyrc il suffit d'utiliser le code vu plus haut

Conky peut afficher les informations de lecture de gmusicbrowser grâce à un patch créé par l'auteur Quentin Sculo ; par contre, cela nécessite de compiler soi-même conky depuis les sources. Pas de panique cependant, un How-To est disponible ici.


Contributeurs: moi.néo, McPeter, ljere, TheCaméléon (script pour les pochettes), Heziode (script pour afficher la pochette du CD avec Audacious)


1)
mon premier script :-)
2)
corrigez le script si nécessaire
  • conky_scripts_multimedia.txt
  • Dernière modification: Le 10/03/2023, 22:28
  • par L'Africain