Page 1 sur 1

[conky]jouer un son depuis un script.sh(résolu)

Publié : jeu. 22 mars 2012, 19:24
par widapit
Bonjour tout le monde !!

Alors voilà, je me suis lancé dans l'aventure conky... :mrgreen: !!

je me le suis arrangé vite fait pour le moment (présentation, placement, couleurs... de facon basique !!) mais pour un début ça me convient .
Du coup j'ai améliorer un script que j'avais écrit il y a quelques temps pour le niveau batterie . Mon script est appelé depuis la section TEXT avec un

Code : Tout sélectionner

${exec /home/widapit/scripts/Battery_info.sh}
et il s'affiche correctement.
Dans mon script j'ai un

Code : Tout sélectionner

echo -e "\a"
Le problème c'est que lorsque la condition est remplie, au lieu de jouer le son système, il y a une nouvelle ligne avec un "°" qui apparait au dessus du niveau batterie.
mais seulement lorsque le script est lu depuis le conky, lorsque je lance le script dans un terminal, quand le niveau critique est atteint, j'ai bien le bip qui retentit !!

Une idée d'où ça peut venir ??
Comment puis-je jouer un son système autrement ? Y a-t-il d'autres commandes pour ça ?
d'autant que je me suis apercu que plusieurs bip systèmes (tonalité différentes) sont possibles, comment les jouer ? (je sais celle-là est un peu hors sujet :chinois: )

Merci !

Re: [conky]jouer un son depuis un script.sh(résolu)

Publié : sam. 24 mars 2012, 01:23
par widapit
Bon, j'ai finalement trouvé la réponse :

Code : Tout sélectionner

man beep
!!

Par contre j'ai du coup une nouvelle question :
pouquoi je suis obligé d'écrire la commande en entier lorsque j'en ai besoin dans mon script ?!
c'est à dire que si je déclare

Code : Tout sélectionner

bellGdiese=$(beep -l 42 -f 830.6)
la note est jouée lors de la lecture des variables, et non quand il y a

Code : Tout sélectionner

echo $bellGdiese
??

Enfin, c'est juste par curiosité parce-que sinon, sachant ça, le script fonctionne depuis mon conky, donc je mets en résolu .

Re: [conky]jouer un son depuis un script.sh(résolu)

Publié : sam. 24 mars 2012, 09:21
par FoolEcho
Parce que si tu déclares ta variable avec bellGdiese=[b]$([/b]beep -l 42 -f 830.6[b])[/b], la commande est évaluée (et donc exécutée) à ce moment.
Pour t'en servir comme tu le voudrais, il faudrait simplement déclarer la variable avec bellGdiese="beep -l 42 -f 830.6" (donc juste stockée la commande comme une chaîne de caractères), puis l'utiliser soit directement, $bellGdiese, soit, mieux (parce qu'une variable qui se ballade toute seule... bof... déjà, rien que pour relire du code, ça ne le fait pas trop, je trouve :mrgreen:): eval $bellGdiese.
Tu peux également simplement écrire une fonction que tu utilises par la suite:

Code : Tout sélectionner

bip() {
 beep -l 42 -f 830.6
}

bip
Sinon pour jouer du son, tu avais aplay (pour jouer du .wav) ou n'importe quoi d'autre, de plus ou moins évolué selon les besoins: mplayer, vlc...

Re: [conky]jouer un son depuis un script.sh(résolu)

Publié : sam. 24 mars 2012, 13:42
par widapit
Merci FoolEcho pour ces précisions...

Par contre je ne voulais justement pas utiliser vlc ou autre, pour ne pas avoir de fichiers sons supplémentaires à importer .
Mais du coup, est-ce que c'est correct de laisser mes autres variables déclarées de cette façon (même si elles ne sont pas executées à ce moment-là!),quelle est la différence avec par exemple :

Code : Tout sélectionner

state=$(acpi -b | sed s'/Battery 0: //' | sed -r s'/, [0-9]{1,2}[0-9]?%(.*)?$//')
??

Re: [conky]jouer un son depuis un script.sh(résolu)

Publié : sam. 24 mars 2012, 13:57
par FoolEcho
Si la commande n'est pas relancée, ce qui est stocké dans la variable n'est valable qu'à l'instant de son exécution (donc pour le coup du son ça n'est pas bien grave, par contre pour surveiller des choses fluctuantes, comme la batterie ou la mémoire, ça n'est clairement pas valable).

Re: [conky]jouer un son depuis un script.sh(résolu)

Publié : sam. 24 mars 2012, 14:18
par widapit
OK, merci !