#1 Le 07/09/2007, à 00:12
- sumot
[Résolu] Script xplanet en rotation en fond d'écran
Bonjour,
warning : gros débutant en script
J'ai fais des essaie avec xplanet et je n'est pas rencontré de gros souci, le forum ma permis de mettre en place le script et donc d'afficher le terre en fond d'écran qui se réinitialise toutes les minutes...
Bref moi je souhaiterais faire tourner la Terre en permanence en fond d'écran, je suis donc partie du script suivant, comme indiquer sur le site xplanet
#!/bin/bash
#xplanet-gnome.sh shell script v0.2
#shows Earth on your Gnome desktop with current lighting conditions,i.e. day and night
DELAY=1m
PREFIX=/home/usr/Background/xplanet/
OUTPUT=xplanet.png
APPEND=2
GEOMETRY=1024x768
LONGITUDE=-149
LATITUDE=-17
#default is no projection,i.e. render a globe
#rectangular is the flat world map. also try ancient, azimuthal, mercator,..
#PROJECTION=rectangular
#rename background image so Gnome realises image has changed - thx to dmbasso
if [ -e "$PREFIX$OUTPUT" ]; then
rm "$PREFIX$OUTPUT"
OUTPUT="$APPEND$OUTPUT"
else
rm "$PREFIX$APPEND$OUTPUT"
fi
if [ -z $PROJECTION ]; then
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE
else
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE -projection $PROJECTION
fi
#update Gnome backgound
gconftool -t str -s /home/usr/Background/xplanet/background_filename "$OUTPUT"
sleep $DELAY
exec xplanet-gnome
Pour y ajouter une boucle, évidemment j'ai d'abord fait un script pour mettre en place une boucle avec until qui marche et qui me créer un fichier toutes les 10s...donc OK
#!/bin/bash
L=-180
until $L=179
do
xplanet -num_times 1 -latitude -17,5 -longitude L$ -geometry 1024x768 -config xplanet.conf -gmtlabel -output /home/usr/Background/xplanet/earth_rotate.png
L=$L+1
wait 10s
done
exec xplanet-rotate
J'ai ensuite rajouter ma boucle et mon incrémentation au 1er script et là ça passe po...
#!/bin/bash
#xplanet-gnome.sh shell script v0.2
#shows Earth on your Gnome desktop with current lighting conditions,i.e. day and night
DELAY=10s
PREFIX=/home/usr/Background/xplanet/
OUTPUT=xplanet.png
APPEND=2
GEOMETRY=1024x768
LONGITUDE=-180
LATITUDE=-17
#default is no projection,i.e. render a globe
#rectangular is the flat world map. also try ancient, azimuthal, mercator,..
#PROJECTION=rectangular
#début de la boucle
until $LONGITUDE=180
do
#rename background image so Gnome realises image has changed - thx to dmbasso
if [ -e "$PREFIX$OUTPUT" ]; then
rm "$PREFIX$OUTPUT"
OUTPUT="$APPEND$OUTPUT"
else
rm "$PREFIX$APPEND$OUTPUT"
fi
if [ -z $PROJECTION ]; then
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE
else
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE -projection $PROJECTION
fi
#update Gnome backgound
gconftool -t str -s /home/usr/Background/xplanet/background_filename "$OUTPUT"
#incrémentation de 1 pour la longitude
LONGITUDE=$LONGITUDE+1
sleep $DELAY
done
exec xplanet-gnome
Avec ce script les fichiers ne sont même pas créer. Alors que le 1er et le 2é marche bien
J'ai télécharger de la doc et je n'arrive pas à faire marcher le tous.
modif : aparement les fichiers se créer mais avec un autre truc bizarre à chaque boucle il me rajoute un 2 en plus dans le nom de fichier
Erreur au niveau du shell aparement il n'arrive pas à incrémenter :
xplanet-gnome: 44: -180=180: not found
rm: ne peut enlever `/home/tama/Background/xplanet/2xplanet.png': Aucun fichier ou répertoire de ce type
xplanet-gnome: 44: -180+1=180: not found
xplanet-gnome: 44: -180+1+1=180: not found
xplanet-gnome: 44: -180+1+1+1=180: not found
xplanet-gnome: 44: -180+1+1+1+1=180: not found
xplanet-gnome: 44: -180+1+1+1+1+1=180: not found
xplanet-gnome: 44: -180+1+1+1+1+1+1=180: not found
xplanet-gnome: 44: -180+1+1+1+1+1+1+1=180: not found
Y a quelque chose qui ne va pas au niveau de mon script, donc si quelqu'un à une solus à me proposer...
voila...
Dernière modification par sumot (Le 07/09/2007, à 20:32)
Hors ligne
#2 Le 07/09/2007, à 01:43
- best_friend_fr
Re : [Résolu] Script xplanet en rotation en fond d'écran
LONGITUDE=$(($LONGITUDE+1))
Dernière modification par best_friend_fr (Le 07/09/2007, à 01:44)
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#3 Le 07/09/2007, à 02:23
- sumot
Re : [Résolu] Script xplanet en rotation en fond d'écran
Merci best_friend_fr,
Pourquoi autant de parenthèse, dois je utiliser les parenthèse pour chaque calcul???
Mais ça ne tourne pas en fond d'écran...
Hors ligne
#4 Le 07/09/2007, à 02:53
- sumot
Re : [Résolu] Script xplanet en rotation en fond d'écran
j'ai changer le script mais le fond d'écran ne ce met pas à jour
#!/bin/bash
#xplanet-gnome.sh shell script v0.2
#shows Earth on your Gnome desktop with current lighting conditions,i.e. day and night
DELAY=10s
GEOMETRY=1024x768
LONGITUDE=-180
LATITUDE=-17
#default is no projection,i.e. render a globe
#rectangular is the flat world map. also try ancient, azimuthal, mercator,..
#PROJECTION=rectangular
#début de la boucle
until $LONGITUDE=180
do
PREFIX=/home/tama/Background/xplanet/
OUTPUT=xplanet.png
APPEND=2
#rename background image so Gnome realises image has changed - thx to dmbasso
if [ -e "$PREFIX$OUTPUT" ]; then
rm "$PREFIX$OUTPUT"
OUTPUT="$APPEND$OUTPUT"
else
rm "$PREFIX$APPEND$OUTPUT"
fi
if [ -z $PROJECTION ]; then
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE -gmtlabel -config xplanet.conf
else
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE -projection $PROJECTION -gmtlabel -config xplanet.conf
fi
#update Gnome backgound
gconftool -t str -s /home/tama/Background/xplanet/background_filename "$OUTPUT"
#incrémentation de 1 pour la longitude
LONGITUDE=$(($LONGITUDE+10))
sleep $DELAY
done
exec sh /home/tama/xplanet-gnome
J'ai réglé également le pbs des 2 qui se rajouter dans le nom du fichier, Je manque d'habitude, mais bon avec un peu de logic on avance...
Si quelqu'un à une solution pour la mise à jour du fond d'écran...
Hors ligne
#5 Le 07/09/2007, à 05:30
- best_friend_fr
Re : [Résolu] Script xplanet en rotation en fond d'écran
Bon, reprenons
#!/bin/bash
#xplanet-gnome.sh shell script v0.2
#shows Earth on your Gnome desktop with current lighting conditions,i.e. day and night
blabla commentaires, ok
GEOMETRY=1024x768
LONGITUDE=-180
LATITUDE=-17
#default is no projection,i.e. render a globe
#rectangular is the flat world map. also try ancient, azimuthal, mercator,..
#PROJECTION=rectangular
tout ca, ok
#début de la boucle
until $LONGITUDE=180
do
ca non. c'est du bash...
#début de la boucle
until [ $LONGITUDE -eq 180 ]
do
PREFIX=/home/tama/Background/xplanet/
OUTPUT=xplanet.png
APPEND=2
#rename background image so Gnome realises image has changed - thx to dmbasso
if [ -e "$PREFIX$OUTPUT" ]; then
rm "$PREFIX$OUTPUT"
OUTPUT="$APPEND$OUTPUT"
else
rm "$PREFIX$APPEND$OUTPUT"
fi
ca c'est le code de xplanet que je reconnais. Je suis pas fan du fichier temporaire dans le home, ou alors dans le home/tmp... mais bon, ca te regarde.
if [ -z $PROJECTION ]; then
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE -gmtlabel -config xplanet.conf
else
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE -projection $PROJECTION -gmtlabel -config xplanet.conf
fi
plusieurs points:
1) si tu veux faire tourner une planete, ne laisse que le premier cas du if, ca sera plus lisible
2) mettre -config xplanet.conf me parait une mauvaise idee. Il faut au moins un chemin absolu, ou mettre un cd au debut de ton script. Je te conseille tout simplement d'utiliser le fichier par defaut...
#update Gnome backgound
gconftool -t str -s /home/tama/Background/xplanet/background_filename "$OUTPUT"
Bon, la, tu as modifie cette ligne, et c'etait la mauvaise idee. Cette ligne ecrit dans le "registre" de Gnome. Le -s donne l'adresse de la cle. Il faut que tu laisses/desktop/gnome/background/picture_filename sinon, tu ecris n'importe ou.
#incrémentation de 1 pour la longitude
LONGITUDE=$(($LONGITUDE+10))
mmm 1 ou 10 ?
exec sh /home/tama/xplanet-gnome
est avantageusement remplace par
exec /home/tama/xplanet-gnome
ou
exec bash /home/tama/xplanet-gnome
si tu ne veux pas rendre ton fichier executable.
Au final, ca te donne un fichier du genre :
#!/bin/bash
#xplanet-gnome.sh shell script v0.2
#shows Earth on your Gnome desktop with current lighting conditions,i.e. day and night
DELAY=10s
GEOMETRY=1024x768
LONGITUDE=-180
LATITUDE=-17
#default is no projection,i.e. render a globe
#rectangular is the flat world map. also try ancient, azimuthal, mercator,..
#PROJECTION=rectangular
#début de la boucle
until [ $LONGITUDE -eq 180 ]
do
PREFIX=/home/tama/tmp/
OUTPUT=xplanet.png
APPEND=2
#rename background image so Gnome realises image has changed - thx to dmbasso
if [ -e "$PREFIX$OUTPUT" ]; then
rm "$PREFIX$OUTPUT"
OUTPUT="$APPEND$OUTPUT"
else
rm "$PREFIX$APPEND$OUTPUT"
fi
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE -gmtlabel
#update Gnome backgound
gconftool -t str -s /desktop/gnome/background/picture_filename "$PREFIX$OUTPUT"
#incrémentation de 10 pour la longitude
LONGITUDE=$(($LONGITUDE+10))
sleep $DELAY
done
exec $0
Dernière modification par best_friend_fr (Le 07/09/2007, à 05:32)
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#6 Le 07/09/2007, à 20:25
- sumot
Re : [Résolu] Script xplanet en rotation en fond d'écran
Salut best_friend_fr,
merci pour ton soutien, ça marche nickel...:D
Mais j'ai encore des petites questions...:rolleyes:
ca c'est le code de xplanet que je reconnais. Je suis pas fan du fichier temporaire dans le home, ou alors dans le home/tmp... mais bon, ca te regarde.
Pourquoi? et qu'elle serait pour toi la meilleure solution?
mmm 1 ou 10 ?
c'était juste un essaie, pour voir une vraie différence
Code:
#début de la boucle
Code:
#début de la boucle
until $LONGITUDE=180
do
ca non. c'est du bash...
Code:
#début de la boucle
until [ $LONGITUDE -eq 180 ]
do
until $LONGITUDE=180
do
ca non. c'est du bash...
Code:
#début de la boucle
until [ $LONGITUDE -eq 180 ]
do
Pas facile au début, ça c quoi si c pas du bash...ça doit donc être pareil pour while...Et si je veux faire > ou < avec ou sans égal, désolé mais la je cale un peu...:(
une dernière chose:
exec $0
ça me permet de relancer le script c'est ça...
En tout cas sa rame pas comme mon premier script...certainement à cause du fichier de config.
Le but étant d'avoir un globe qui tourne avec un max d'infos sur les cyclones ou volcan, tremblements de terre dans le reste du monde, si je peux avoir un marker avec les températures et les heures un peu partout...un bon gros fichier de config...Allez je continue...
Super boulot tout le mérite te reviens, merci pour ta patience...
@+
sumot
Hors ligne
#7 Le 07/09/2007, à 20:34
- best_friend_fr
Re : [Résolu] Script xplanet en rotation en fond d'écran
Le bash, c'est comme ca
until [ $LONGITUDE -eq 180 ]
tu peux remplacer -eq par -lt (<), -gt (>) ...
exec $0 te rappelle le fichier execute.
Mais pour que ce soit plus rapide, tu peux faire une bonne grosse boucle autour de tout ton fichier.
Selon moi, la meilleure solution est de mettre les fichiers temporaires dans le /tmp
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#8 Le 07/09/2007, à 20:50
- sumot
Re : [Résolu] Script xplanet en rotation en fond d'écran
Ok Ya...
je regarde pour le /tmp
Je fais la grosse boucle...
encore merci pour les explications
@+
Hors ligne