Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 03-03-2015 19:52:10

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

conky / mpd - afficher pochette album

j'ai trouvé mon client pour mpd mais pour compléter, je cherche à afficher sur mon conky la pochette de l'album en cours (je viens de là http://debian-facile.org/viewtopic.php?id=10741).

Tout ce que j'ai trouvé de plus proche c'est la variable $mpd_file .
Les pochettes sont toutes nommés cover.jpg dans le dossier de l'album.

si quelqu'un a une bonne idée, je suis preneur.


TEXT
${if_mpd_playing}${color}${font DejaVu:style=Bold:size=12}Musique ${hr 3}
${font}${color}# restaure la police par défaut
${voffset 7}${offset 125}${mpd_artist}
${offset 125}$mpd_album
${offset 125}$mpd_track. $mpd_title
${offset 125}${mpd_bar 6,325}
${offset 125}${offset 20}${if_match "${mpd_status}"=="Playing"}${image ~/.conky/start.png  -p 125,110 } Playing ${else}${image ~/.conky/pause.png  -p 125,110 } Pause ${endif} ${alignc}${offset 40} ${image ~/.conky/volume.png  -p 230,110 } $mpd_vol   ${if_match "${mpd_repeat}"=="On"} ${image ~/.conky/repeat.png  -p 375,110 } ${endif}           ${if_match "${mpd_random}"=="On"} ${image ~/.conky/shuffle.png  -p 425,110 } ${endif}        ${image ~/.conky/quodLibet_CD.png  -p 10,35 -s 100x100}         ${image ~/.conky/quodLibet_box.png  -p 1,32 -s 112x105}           ${endif}



1425404871.png

Hors ligne

#2 03-03-2015 21:11:04

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : conky / mpd - afficher pochette album

Bonsoir,

Je ne saisis pas trop ce que tu vises mais tu n'as pas de début de piste dans les discussions concernant Rythmbox et Clementine ?
https://debian-facile.org/viewtopic.php?id=9437
https://debian-facile.org/viewtopic.php?id=6281
https://debian-facile.org/viewtopic.php … 882#p91882

I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#3 05-03-2015 01:28:18

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : conky / mpd - afficher pochette album

rien trouvé d'intéressant jusqu'à maintenant.

dans conky, il y a $mpd_file

Garbage/Garbage - Garbage (1995)/12 - Milk.mp3



avec mpc j'arrive à la même chose

mpc --port 6660 --format %file%
Garbage/Garbage - Garbage (1995)/12 - Milk.mp3



sachant que l'image

Garbage/Garbage - Garbage (1995)/cover.jpg


c'est dans le dossier ~/Musique

depuis conky, je pense que ça va être compliqué de manipuler une chaîne de caractère.

Hors ligne

#4 05-03-2015 02:35:45

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : conky / mpd - afficher pochette album

avec gmpc, je peux peut être faire quelque chose

/home/user/.cache/gmpc/metadata/Garbage/Garbage.jpg


les pochettes sont stockées par Artiste/Album

je pense qu'après il faut que je passe par mpc pour avoir les bonnes infos sur la chanson en cours

mpc --port 6660 --format %artist%/%album%
Garbage/Garbage
[playing] #1/1   2:39/3:56 (67%)
volume:100%   repeat: on    random: on    single: off   consume: off
 



si quelqu'un peut m'aider pour récupérer le chemin complet de l'image.

Hors ligne

#5 05-03-2015 07:52:36

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : conky / mpd - afficher pochette album

nIQnutn a écrit :

si quelqu'un peut m'aider pour récupérer le chemin complet de l'image.

Là, j'ai un peu le shell qui se referme sous mes yeux ... roll

Auparavant, il n'y a rien d'intéressant à piocher dans ce post : http://crunchbang.org/forums/viewtopic.php?id=4686 ?
Sinon : conky-mpd


I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#6 05-03-2015 12:06:10

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : conky / mpd - afficher pochette album

Help,

je suis bloqué mais uniquement à cause des espaces dans le chemin.

mpc --port 6660 --format %file%  | head -n1  |  sed -r 's/(.*)\/.*/~\/Musique\/\1\/cover.jpg/'


j'arrive à avoir le chemin de la pochette.

je sais pas si c'est bien d'utiliser ~ au lieu de /home/user ?

Hors ligne

#7 05-03-2015 12:22:31

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : conky / mpd - afficher pochette album

tu peux m'écrire le chemin ?

I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#8 05-03-2015 12:27:13

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : conky / mpd - afficher pochette album

et tu as vérifié ce qui sort de head ?

I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#9 05-03-2015 12:45:26

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : conky / mpd - afficher pochette album

je sais pas si c'est ça que tu voulais voir

mpc --port 6660 --format %file%  | head -n1
Anouk/Anouk - Together Alone (1997)/01 - Nobody's Wife.mp3



$ mpc --port 6660 --format %file%  | head -n1  |  sed -r 's/(.*)\/.*/~\/Musique\/\1\/cover.jpg/'
~/Musique/Anouk/Anouk - Together Alone (1997)/cover.jpg
 

Dernière modification par nIQnutn (05-03-2015 12:47:16)

Hors ligne

#10 05-03-2015 12:48:19

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : conky / mpd - afficher pochette album

Ah oui, ça c'est bon, c'est dans conky que ça ne vas pas ?

I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#11 05-03-2015 12:57:23

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : conky / mpd - afficher pochette album

oui c'est conky qui n'accepte pas les espaces dans le chemin

ça marche avec

${image   /tmp/test.jpg  -p 10,35 -s 100x100}


mais impossible de mettre des ' ou " , ça ne marche pas.


j'imagine qu'il est possible de faire un lien avec ln  et le placé dans /tmp/conky_cover.jpg roll

Dernière modification par nIQnutn (05-03-2015 12:57:42)

Hors ligne

#12 05-03-2015 12:57:31

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : conky / mpd - afficher pochette album

Le chemin est utilisé comment ?
Conky accepte des trucs comme ça avec ~ :

${if_running clementine}${color lightgrey}Clementine ${execi 2 python ~/.conky/scripts/clementine.py -z}


I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#13 05-03-2015 12:58:05

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : conky / mpd - afficher pochette album

Ah, vu.

I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#14 05-03-2015 12:59:24

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : conky / mpd - afficher pochette album

C'est ce genre-là, en fait ?

${execi 2 python ~/.conky/scripts/clementine.py -c /tmp/cover.jpg}${image /tmp/cover.jpg -p 22,432 -s 200x200 -n}


I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#15 05-03-2015 13:21:49

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : conky / mpd - afficher pochette album

oui ,le ~ fonctionne

${image   ~/.wallpaper.jpg -p 10,35 -s 100x100}
 


j'ai essayer avec le caractère échappement \ mais ça marche pas dans conky

Hors ligne

#16 05-03-2015 13:40:43

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : conky / mpd - afficher pochette album

et entre quotes ?

I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#17 05-03-2015 13:47:56

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : conky / mpd - afficher pochette album

non, ' ou " sur le chemin ou uniquement pour l'espace.

j'imagine que c'est la limite de conky.

Hors ligne

#18 05-03-2015 14:18:03

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : conky / mpd - afficher pochette album

regarde là : http://momh.fr/tutos/Linux/conky_musique
une manip pour récupérer le chemin sans espace avant de le passer à conky  smile

I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#19 05-03-2015 15:06:18

Severian
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 4.6.0-0.bpo.1-amd64
(G)UI : Openbox 3.6.1-2
Inscription : 13-12-2014

Re : conky / mpd - afficher pochette album

nIQnutn a écrit :

oui c'est conky qui n'accepte pas les espaces dans le chemin

ça marche avec

${image   /tmp/test.jpg  -p 10,35 -s 100x100}


mais impossible de mettre des ' ou " , ça ne marche pas.


j'imagine qu'il est possible de faire un lien avec ln  et le placé dans /tmp/conky_cover.jpg roll



ha bon ... pourquoi ma commande

$color${font Andale Mono:size=12}${execpi 3600 VinDSL_Cal_8=`date +%-d`; cal -1h | sed -e '1d' -e 's/\<'"$VinDSL_Cal_8"'\>/${color orange}&${color}/'}$font



fonctionne t'elle ?
ok ce n'est pas une image, mais tu les as tout les " ' `

et pourquoi pas un

${execi 2 ImageCD=`mpc --port 6660 --format %file%  | head -n1  |  sed -r 's/(.*)\/.*/~\/Musique\/\1\/cover.jpg/' ${image "$ImageCD"} }



(je ne peux pas le tester je n'écoute pas de musique sur le pc...)

Dernière modification par Severian (05-03-2015 15:16:25)


"il est urgent d'attendre" (bendia)
ob3-debian2-150x50.png

Hors ligne

#20 05-03-2015 16:06:38

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : conky / mpd - afficher pochette album

mon usine à gaz

##!/bin/bash

# Répertoire Musique
library='/home/user/Musique/'

# chancon en cours de lecture
current_song=$(mpc --port 6660 --format %file%  | head -n1)
# echo $current_song

# chemin de l'image
current_song_cover=$( echo "$current_song" |  sed -r 's/(.*)\/.*/\1\/cover.jpg/' )
# echo $current_song_cover

# suppression de l'ancienne pochette de l'album
rm /tmp/conky_cover.jpg

# création du lien vers la pochette
ln -s  "$library""$current_song_cover" /tmp/conky_cover.jpg

# image dans conky
echo "\${image /tmp/conky_cover.jpg  -p 10,35 -s 100x100 -n}"
 



dans conky

${execpi 2  /tmp/conky_mpd.sh}
 




pour éviter que ça tourne en boucle je vais l'insérer dans

${if_match "${mpd_status}"=="Playing"}${image ~/.conky/start.png  -p 125,110 } Playing ${else}${image ~/.conky/pause.png  -p 125,110 } Pause ${endif}




si vous avez de bonne idée.

Dernière modification par nIQnutn (05-03-2015 16:12:49)

Hors ligne

#21 05-03-2015 16:49:01

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : conky / mpd - afficher pochette album

Bon,  pour transformer


Garbage/Garbage - Garbage (1995)/12 - Milk.mp3
 


en


Garbage/Garbage - Garbage (1995)/cover.jpg
 


Je suggère d'utiliser « dirname  », comme suit :


pochette="$(dirname ${mpd_music_directory}/$(mpc --port 6660 --format %file%))/cover.jpg"
 


ou ${mpd_music_directory} est le répertoire où mpd va chercher sa musique wink

Par exemple si ${mpd_music_directory} vaut ~/Music :


pochette="$(dirname ${HOME}/Music/$(mpc --port 6660 --format %file% |head -n1))/cover.jpg"
 



Voilà, ce sont mes 2 cents du jour wink


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#22 05-03-2015 17:46:03

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : conky / mpd - afficher pochette album

j'arrive à faire marcher le bouzin.

l'objectf est de ne pas bouffer toutes les ressources pour une seule image. toutes les améliorations sont les bienvenues.


Récapitulatif:
Conky


#MPD
mpd_port 6660
mpd_host localhost





TEXT
${if_mpd_playing}${color}${font DejaVu:style=Bold:size=12}Musique ${hr 3}
${font}${color}# restaure la police par défaut
${voffset 7}${offset 125}${mpd_artist}
${offset 125}$mpd_album
${offset 125}$mpd_track. $mpd_title
${offset 125}${mpd_bar 6,325}
${image ~/.conky/quodLibet_CD.png  -p 10,35 -s 100x100}${image ~/.conky/quodLibet_box.png  -p 1,32 -s 112x105}${image /tmp/conky_cover.jpg  -p 10,35 -s 100x100 -n}${offset 125}${offset 20}${if_match "${mpd_status}"=="Playing"}${image ~/.conky/start.png  -p 125,110 } Playing ${execpi 2 ~/.conky/conky_mpd.sh}${else}${image ~/.conky/pause.png  -p 125,110 } Pause ${endif} ${alignc}${offset 40} ${image ~/.conky/volume.png  -p 230,110 } $mpd_vol   ${if_match "${mpd_repeat}"=="On"} ${image ~/.conky/repeat.png  -p 375,110 } ${endif}           ${if_match "${mpd_random}"=="On"} ${image ~/.conky/shuffle.png  -p 425,110 } ${endif}        ${endif}


on appel le script toutes les 2 secondes



script pour récupérer l'image

##!/bin/bash

# Répertoire Musique
library='/home/user/Musique/'


# chancon en cours de lecture
current_song=$(mpc --port 6660 --format %file%  | head -n1)
# echo $current_song

# chemin de l'image
current_song_cover=$( echo "$current_song" |  sed -r 's/(.*)\/.*/\1\/cover.jpg/' )
# echo $current_song_cover

# suppression de l'ancienne pochette de l'album
rm /tmp/conky_cover.jpg

# création du lien vers la pochette
cp -f  "$library""$current_song_cover" /tmp/conky_cover.jpg

# image dans conky
# echo "\${image /tmp/conky_cover.jpg  -p 10,35 -s 100x100 -n}"
 




avec ${if_mpd_playing} ça évite de faire tourner le script en boucle et sans raison. mpd en pause > pas de conky.


j'ai un if avec ${mpd_status} , si le lecture est en pause >  on arrête le script


Du coup on garde dans conky l'affichage avec les propriétés de l'image et dans le script on va uniquement chercher l'image.

Dernière modification par nIQnutn (05-03-2015 17:54:30)

Hors ligne

#23 05-03-2015 18:06:33

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : conky / mpd - afficher pochette album

C'est bien. Je te suggère de remplacer


cp -f  "$library""$current_song_cover" /tmp/conky_cover.jpg
 


par :


cp -f  "${library}${current_song_cover}" /tmp/conky_cover.jpg
 


Les accolades ({ }) sont là pour délimiter les noms des variables.
On peut même mettre un slash entre les deux. Dans un chemin de nom de fichier, quand
deux slash se suivent, ils sont interprétés comme un seul slash. C'est prévu spécialement
pour ne pas s'embêter avec les slashs wink

Ça donne cela :


cp -f  "${library}/${current_song_cover}" /tmp/conky_cover.jpg
 


Ça permet de mettre en valeur le fait que ${library} et ${current_song_cover}
sont des chemins dans le nom d'un fichier. En résumé, ça rend le code plus clair, amha.

Dernière modification par enicar (05-03-2015 21:52:19)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#24 05-03-2015 18:14:25

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : conky / mpd - afficher pochette album

c'est judicieux.

j'improvise donc c'est sympa d'avoir des commentaires et d'apprendre de nouvelles choses.

Hors ligne

#25 05-03-2015 22:03:43

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : conky / mpd - afficher pochette album

Tu peux simplifier l'expression de sed. Tu as mis :


sed -r 's/(.*)\/.*/\1\/cover.jpg/'
 



Je te propose :


sed 's|/[^/]*$|/cover.jpg|'
 


J'ai utilisé des | comme séparateur, c'est pratique, ça évite les \/.
Ensuite, [^/]* représente zéro ou plus caractères différents de /,
$ représente la fin de chaine.
Donc on demande à sed de chercher des caractères qui ne sont pas des / en fin de chaine et
de les substituer par cover.jpg.

C'est plus simple, on a pas besoin de mettre un motif en mémoire avec des parenthèses et
d'utiliser un \1 dans la chaine de substitution.

Je crois qu'on peut simplifier en :


sed 's|[^/]*$|cover.jpg|'
 


mais à vérifier wink

Dernière modification par enicar (05-03-2015 22:48:49)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

Pied de page des forums