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

Xorg, Compiz, KDE / Gnome / Xfce / Fluxbox / e17 / fvwm ... GDM/KDM/XDM...
Avatar de l’utilisateur
widapit
Maître du Kyudo
Messages : 1148
Inscription : mar. 30 mars 2010, 22:53
Localisation : Toulouse

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

Message 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 !
routeur(OpenWRT); serveurs(Debian, Arch); cléUSB(Black-Arch);
mon ordi(Arch-hardened) = {spectrwm, zsh} || je m'amuse aussi avec des Arduino !
Avatar de l’utilisateur
widapit
Maître du Kyudo
Messages : 1148
Inscription : mar. 30 mars 2010, 22:53
Localisation : Toulouse

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

Message 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 .
routeur(OpenWRT); serveurs(Debian, Arch); cléUSB(Black-Arch);
mon ordi(Arch-hardened) = {spectrwm, zsh} || je m'amuse aussi avec des Arduino !
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

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

Message 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...
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
widapit
Maître du Kyudo
Messages : 1148
Inscription : mar. 30 mars 2010, 22:53
Localisation : Toulouse

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

Message 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]?%(.*)?$//')
??
routeur(OpenWRT); serveurs(Debian, Arch); cléUSB(Black-Arch);
mon ordi(Arch-hardened) = {spectrwm, zsh} || je m'amuse aussi avec des Arduino !
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

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

Message 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).
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
widapit
Maître du Kyudo
Messages : 1148
Inscription : mar. 30 mars 2010, 22:53
Localisation : Toulouse

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

Message par widapit »

OK, merci !
routeur(OpenWRT); serveurs(Debian, Arch); cléUSB(Black-Arch);
mon ordi(Arch-hardened) = {spectrwm, zsh} || je m'amuse aussi avec des Arduino !
Répondre