Je suis toujours sur mon conky qui se termine par l'affichage de carte satellite.
A priori, la carte infra rouge s'affiche bien dès que la nuit est tombée, alors que dans la journée c'est la carte couleurs naturelles qui est affichée.
Là n'est pas le problème.
Ce qui m'embête un peu, ce sont des bizarreries de comportement du conky.
J'en ai relevé 2, et je fais appel à vos connaissances pour tenter de les expliquer.
1/ Stockage des images.
Le script perl que j'utilise pour aller chercher l'image sat qui est mise à jour régulièrement est le suivant :
#!/usr/bin/perl -w
use strict;
use warnings;
use constant VERSION => 0.03;
if(scalar @ARGV != 4) {
&help;
}
my $image_web;
my $dimensions;
# Détermination des arguments
for(my $i = 0; $i < scalar @ARGV; $i +=2) {
if($ARGV[$i] eq "-s") {
$dimensions = $ARGV[$i + 1];
}
elsif($ARGV[$i] eq "-i") {
$image_web = $ARGV[$i + 1];
}
else {
print STDERR "Argument $ARGV[$i] inconnu\n";
&help;
}
}
# Détermination du nom de l'image
my @decoupage = split "/", $image_web;
my $image_sat = $decoupage[$#decoupage];
# On regarde si le fichier existe déjà
if(-e $image_sat) {
# Récupération des informations de l'image
my @infos_ancienne_image = (stat($image_sat))[7..10];
# Téléchargement de l'image si besoin
&telecharger($image_web, "-m -nd");
# Récupération des informations de l'image
my @infos_nouvelle_image = (stat($image_sat))[7..10];
# Comparaison des informations pour déterminer si on a téléchargé une image
my $comparaison = 0;
for(my $i = 0; $i < scalar @infos_ancienne_image; $i++) {
if($infos_ancienne_image[$i] != $infos_nouvelle_image[$i]) {
$comparaison++;
last;
}
}
# Si l'image est nouvelle, il faut refaire un découpage
if($comparaison) {
&nouvelle_image($image_sat, $dimensions);
}
}
else {
&telecharger($image_web, "");
&nouvelle_image($image_sat, $dimensions);
}
#######################
# Début des fonctions #
#######################
sub help {
print "Utilisation : $0 [arguments]\n"
. "arguments :\n"
. " -i : Permet d'indiquer l'emplacement où se trouve l'image\n"
. " -s : Permet d'indiquer le découpage de l'image\n";
exit(0);
}
sub nouvelle_image {
my ($image, $decoupage) = @_;
# Sauvegarde de l'image actuelle
system("cp $image imagesattmp.jpg");
# Découpage de l'image
system("convert imagesattmp.jpg -crop $decoupage image.jpg");
# Suppression de l'image temporaire
unlink "imagesattmp.jpg";
}
sub telecharger {
my ($emplacement, $options) = @_;
system("wget -q $options $emplacement");
}
__END__
Si je lance le conky avec la ligne de commande :
conky -c ~/conky/meteo/conkyrcmeteo
alors l'image téléchargée va s'enregistrer dans le Home, ainsi que l'image recoupée qui sera affichée.
En revanche, si je lance le conky avec ce script Nautilus :
#!/bin/sh
# click to start, click to stop
if pidof conky | grep [0-9] > /dev/null
then
exec killall conky
else
conky -c ~/conky/meteo/conkyrcmeteo &
exit
fi
Alors les 2 images (téléchargée et retaillée) sont enregistrées sur le Bureau
Quelqu'un peut il m'expliquer pourquoi ce changement de destination d'enregistrement ?
2/ Affichage de l'image
Je fais appel à 8 sortes d'images SAT : 4 pour l'Europe de l'Ouest, et 4 pour l'Afrique de l'Ouest.
J'ai mis dans le conky les 8 sources différentes, en ne gardant activée que celle que je désire afficher.
Si j'ai effectivement dans le conky toutes les lignes enregistrées, avec des # placés devant les lignes que je ne veux pas activer, alors j'ai une lettre qui v'a s'afficher sur la photo.
La position de cette lettre dépend du nombre de lignes vides dans le conky (Ces lignes sont sautées pour avoir une meilleure lisibilité dans l'écriture du conky)
Voici les lignes du conky en question :
### Affichage cartes satellite pour Europe de l'Ouest et Afrique de l'Ouest ###
### Au choix couleurs naturelles, Infra Rouge, Orages, Incendies ###
### Il suffit de mettre un # devant la ligne pour ne pas la lancer ###
### ou de retirer le # pour lancer l'affichage ###
### Affichage cartes SAT Europe de l'Ouest ###
## Affichage en RGB ou en IR en fonction de l'heure (pour affichage IR de nuit) ##
${if_match ${exec echo $(expr $(sed -e "47s/:.*$//" ~/conky/meteo/jour0|sed -n '47p')*60+$(sed -e "47s/^.*://" ~/conky/meteo/jour0|sed -n '47p')|bc -l)}>${exec echo $(($(($(date +%H)*60))+$(date +%M)))}}${if_match ${exec echo $(($(($(date +%H)*60))+$(date +%M)))}>${exec echo $(expr $(sed -e "45s/:.*$//" ~/conky/meteo/jour0|sed -n '45p')*60+$(sed -e "45s/^.*://" ~/conky/meteo/jour0|sed -n '45p')|bc -l)}}${execpi 1200 perl ~/conky/meteo/scripts/imagesat.pl -s 1274x657+300+110 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_RGB-naturalcolor-westernEurope.jpg}${image ~/Bureau/image.jpg -p -5,670 -s 400x235}${else}${execpi 1200 perl ~/meteo/scripts/imagesat.pl -s 1274x657+200+10 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_IR108EColor-westernEurope.jpg}${image ~/Bureau/image.jpg -p -5,670 -s 400x235}${endif}${else}${execpi 1200 perl ~/conky/meteo/scripts/imagesat.pl -s 1274x657+200+10 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_IR108EColor-westernEurope.jpg}${image ~/Bureau/image.jpg -p -5,670 -s 400x235}${endif}
## Affichage carte des Orages ##
#${execpi 1200 perl ~/conky/meteo/scripts/imagesat.pl -s 1274x657+400+90 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_MPE-westernEurope.jpg}${image ~/Bureau/image.jpg -p -5,670 -s 400x235}
## Affichage carte Type Atlas + suivi des Incendies ##
#${execpi 1200 perl ~/conky/meteo/scripts/imagesat.pl -s 1274x657+400+50 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_FIRE-westernEurope.png}${image ~/Bureau/image.jpg -p -5,670 -s 400x235}
### Affichage cartes SAT Afrique de l'Ouest ###
## Affichage en RGB ou en IR en fonction de l'heure (pour affichage IR de nuit) ##
#${if_match ${exec echo $(expr $(sed -e "47s/:.*$//" ~/conky/meteo/jour0|sed -n '47p')*60+$(sed -e "47s/^.*://" ~/conky/meteo/jour0|sed -n '47p')|bc -l)}>${exec echo $(($(($(date +%H)*60))+$(date +%M)))}}${if_match ${exec echo $(($(($(date +%H)*60))+$(date +%M)))}>${exec echo $(expr $(sed -e "45s/:.*$//" ~/conky/meteo/jour0|sed -n '45p')*60+$(sed -e "45s/^.*://" ~/conky/meteo/jour0|sed -n '45p')|bc -l)}}${execpi 1200 perl ~/conky/meteo/scripts/imagesat.pl -s 1274x657+0+510 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_RGB-naturalcolor-westernAfrica.jpg}${image ~/Bureau/image.jpg -p -5,670 -s 400x235}${image ~/Bureau/image.jpg -p -5,670 -s 400x235}${else}${execpi 1200 perl ~/conky/meteo/scripts/imagesat.pl -s 1274x657+0+110 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_IR108Color-westernAfrica.jpg}${image ~/Bureau/image.jpg -p -5,670 -s 400x235}${image ~/Bureau/image.jpg -p -5,670 -s 400x235}${endif}${else}${execpi 1200 perl ~/conky/meteo/scripts/imagesat.pl -s 1274x657+0+110 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_IR108Color-westernAfrica.jpg}${image ~/Bureau/image.jpg -p -5,670 -s 400x235}${endif}
## Affichage carte des Orages ##
#${execpi 1200 perl ~/conky/meteo/scripts/imagesat.pl -s 1274x657+0+550 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_MPE-westernAfrica.jpg}${image ~/Bureau/image.jpg -p -5,670 -s 400x235}
## Affichage carte Type Atlas + suivi des Incendies ##
#${execpi 1200 perl ~/conky/meteo/scripts/imagesat.pl -s 1274x657+0+550 -i http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_FIRE-westernAfrica.png}${image ~/Bureau/image.jpg -p -5,670 -s 400x235}
Et voici ce que cela donne à l'affichage :
Uploaded with
ImageShack.us
Le '
/' encerclé en rouge est le caractère qui apparaît avec cette configuration.
Si je saute plus ou moins de lignes dans le conky, alors ce sera un autre caractère ou une lettre qui s'affichera un peu plus haut ou un peu plus bas.
Pour régler ce problème, j'ai coupé le conky pour en faire 2. Un qui contient les lignes pour l'affichage des photos satellite de l'Europe, et un autre qui a les lignes pour l'affichage des photos satellite de l'Afrique.
Là, je n'ai plus ce bug d'affichage.
Une idée sur l'origine de ce bug ?
J'attends vos lumières pour éclairer ma lanterne.
Merci d'avance 😃