XPlanet

XPlanet est un logiciel permettant de créer des images de notre système solaire.

xplanet_mercure.jpgxplanet_mars.jpgxplanet_jupiter.jpg
Mercure, Mars et Jupiter « vues » par XPlanet.

Pré-requis

Installation

Pour installer ce logiciel, il vous suffit d'installer les paquets xplanet et xplanet-images.

Ce dernier paquet ne contenant que l'image de la terre, jour et nuit. Pour avoir d'autres cartes de planètes voir la section Liens.

Utilisation

Vous pouvez ensuite l'utiliser, par exemple, pour afficher la Terre :

xplanet -window -body earth 

XPlanet accepte de nombreuses options, man xplanet pour plus d'informations.

xplanet -window -geometry 600x400 -radius 40 -body earth -latitude 30

Configuration

En plus des options à passer en argument à la commande xplanet, un fichier de configuration contient tous les paramètres configurables. Le fichier utilisé par défaut est /etc/xplanet/config/default, mais il est possible d'utiliser un fichier alternatif grâce à l'option -config nom_fichier.

Les paramètres utilisables sont décrits dans le fichier /etc/xplanet/config/README. Il peut notamment être intéressant de « gonfler » la taille des objets afin que l'image, moins réaliste, soit plus expressive (les dimensions du système solaire ne sont pas optimisées pour l'affichage sur un écran d'ordinateur…). Ceci se fait avec le paramètre magnify.

xplanet-terre-lune-x1.jpgxplanet-terre-lune-x40.jpg
(à gauche, la Terre et la Lune à l'échelle ; à droite, avec magnify=40)

Attention à ne pas mettre une valeur trop haute, sans quoi les satellites seront engloutis par leur planète… Des valeurs de 40 pour la Terre et la Lune et de 5 pour le reste semblent raisonnables.

Désinstallation

Pour supprimer cette application, il suffit de :

  • supprimer son paquet. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.
  • supprimer les dossier dans le répertoire utilisateur :
rm -Rf ~/.xplanet

ou

gio trash .xplanet

pour mettre le dossier dans la corbeille.

Attention à utiliser cette commande avec prudence !
Elle supprime récursivement tous les fichiers et dossiers contenus dans le répertoire .xplanet, sans confirmation. Une mauvaise utilisation de la commande rm peut avoir des conséquences graves sur votre système !
Voir la page Les commandes dangereuses pour plus d'infos.

Il est possible d'ajouter des nuages à une planète avec le paramètre de configuration cloud_map. Une carte des nuages pour la Terre en temps réel est disponible sur certains serveurs et mise à jour toutes les trois heures. Pour l'utiliser, modifiez votre fichier de configuration /etc/xplanet/config/default (en tapant : sudo gedit /etc/xplanet/config/default par exemple) et ajoutez dans la section [Earth] les lignes :

cloud_map=clouds.jpg
map=earth.jpg
night_map=night.jpg

Les paramètres map et night_map permettent d'indiquer quelles cartes seront prise en compte pour les vues de jour et de nuit (avec les lumières des villes !)

Ensuite, s'il n'existe pas, créez le répertoire .xplanet. Dans une console lancez la commande :

if [ ! -d ~/.xplanet ]; then echo 'Create .xplanet'; mkdir -p ~/.xplanet/images ; fi

Copiez ensuite dans votre .xplanet/images les cartes earth.jpg et night.jpg :

cp /usr/share/xplanet/images/{earth.jpg,night.jpg} ~/.xplanet/images

Enfin, créez le fichier script perl suivant sous /usr/local/bin/clouds.pl avec les droits administrateur.

clouds.pl (à la ligne 37 remplacer $user par votre nom d'utilisateur ; ne mettez pas de raccourci $HOME ou ~, ce n'est pas un script bash et ça ne fonctionnera pas !) :

#!/usr/bin/perl
# ------------------------------------------------------------------------------------
#  Program for downloading XPlanet cloud images from a random mirror
# 
#  Copyright (c) 2003, cueSim Ltd.                  http://www.cueSim.com, Bedford, UK
#  
# ------------------------------------------------------------------------------------
#  
#  Redistribution and use, with or without modification, are permitted provided 
#  that the following conditions are met:
#  
#      * Redistributions of source code must retain the above copyright notice, 
#     this list of conditions and the following disclaimer.
#      * Neither the cueSim name nor the names of its contributors may 
#     be used to endorse or promote products derived from this software without 
#     specific prior written permission.
#  
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
#  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
#  SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
#  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
#  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
#  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
#  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# 
# (2005-06) hacked by mose at nguild.org for personal use on a debian SID
# (2008-08) hacked by benhaim_jerome at yahoo.fr for personal use on a ubuntu Hardy
 
use LWP::Simple;
 
# Options:
#  - ou sauvegarder l'image des nuages (par defaut le répertoire courant)
# 
 
my $Filename = "/home/$user/.xplanet/images/clouds.jpg";
 
# - fréquences de mise à jour de l'image sur le serveur
my $MaxDownloadFrequencyHours = 2;
 
# - Combien d'essais, si le serveur ne répond pas 
my $MaxRetries = 3;
 
## Note: excessive requests to a single image server is discouraged.
## This script limits max retries, does not download more frequently
## than every two hours (the file is generated every 3 hours). and 
## picks a random mirror location for every download.
##
## Changer les paramètres risque de vous exclure (blacklisted)
## des serveurs d'images
 
if(-f $Filename) {
  my @Stats = stat($Filename);
  my $FileAge = (time() - $Stats[9]);
  my $FileSize = $Stats[7];
  if($FileAge < 60 * 60 * $MaxDownloadFrequencyHours && $FileSize > 400000) {
    print "File is already up to date\n";
    exit(1);
  }
}
 
for(1..$MaxRetries) {
  my $MirrorURL = GetRandomMirror();
  print "Using $MirrorURL\nDownloading...\n";
  my $Response = getstore($MirrorURL, $Filename);
  if( IndicatesSuccess($Response)) {
    print "Finished: file successfully downloaded to $Filename\n";
    exit(0);
  }
  print "Download not available, trying another website\n\n";
}
print "ERROR: Tried to download the file $MaxRetries times, but no servers could provide the file\n";
exit(2);
 
sub IndicatesSuccess() {
  my $Response = shift();
  if($Response =~ /2\d\d/) {
    return(1); 
  } else {
    return(0);
  } 
} 
## Liste des serveurs miroir
sub GetRandomMirror() {
  my @Mirrors = (
     "ftp://ftp.iastate.edu/pub/xplanet/clouds_2048.jpg",
     "ftp://mirror.pacific.net.au/xplanet/clouds_2048.jpg",
  );
  return $Mirrors[rand scalar(@Mirrors)];
}
La liste des serveurs à la fin du fichier clouds.pl n'est pas forcément à jour. Il est important d'avoir une liste à jours pour éviter des requêtes inutiles vers des serveurs qui n'existent plus. Assurez-vous que les serveurs sont dans la liste disponible ici (ce n'est pas la peine de vérifier régulièrement, faites-le juste lors de l'installation).

Puis rendre executable le fichier clouds.pl :

sudo chmod +x /usr/local/bin/clouds.pl

Il ne reste qu'à modifier la table de cron en éditant le fichier /etc/crontab avec les droits administrateur et à y ajouter à la fin :

49 2,5,8,11,14,17,20,23 * * * perl /usr/local/bin/clouds.pl

Le fichier de nuages sera mis à jour automatiquement toutes les trois heures. Pour ne plus télécharger les mises à jours, il suffit de supprimer ou de commenter la ligne précédemment ajoutée :

# 49 2,5,8,11,14,17,20,23 * * * perl /usr/local/bin/clouds.pl

Il est possible d'utiliser XPlanet comme fond d'écran dynamique, c'est-à-dire mis à jour régulièrement.

Il existe un équivalent très facilement paramétrable : xplanetFX

GNOME (Ubuntu)

Installation

Par défaut, les scripts suivants affichent une image de la Terre mise à jour toutes les 10 minutes, avec des nuages mis à jour toutes les trois heures (cf Des nuages sur la Terre !) et les lumières des villes la nuit.

Éditez un fichier avec les droits administrateur et enregistrez le comme /usr/local/bin/xplanet-bg. Copiez-y le script ci-dessous. Il gère la configuration de XPlanet (position, projection, répertoires…) et met à jour le fond d'écran.

Ce script est prévu pour GNOME, à adapter pour KDE (ligne gconftool à la fin du script)

xplanet-bg :

#!/bin/bash
# xplanet-bg shell script v0.3 (pour Ubuntu 9.10 (karmic) & versions suivantes)
# Montre la Terre sur le bureau Gnome avec les conditions courantes d'éclairage (le jour et la nuit)
# avec la vue centrée sur votre ville, ou bien centrée à la verticale du Soleil (pour plus de dépaysement).
 
# Répertoire racine de xplanet, qui doit contenir le fichier xplanet.xml, et un dossier contenant
# les images earth.jpg et night.jpg qui seront copiées de /usr/share/xplanet/images
PREFIX=~/.xplanet/
 
# Non du fichier images créer
OUTPUT=xplanet.png
 
# ORIGINE et LOOK_AT ne peuvent être les mêmes :
# modifier ORIGINE pour indiquer la planète d'où vous regardez ;
# modifier LOOK_AT pour indiquer la planète que vous regardez.
ORIGINE=moon
LOOK_AT=earth
 
# Géométrie de l'image à régler suivant la résolution du bureau
GEOMETRY=1280x800
 
# Si vous utilisez un dock pour votre portable (et avez donc plusieurs résolutions
# d'écran suivant si vous êtes en vadrouille ou au bureau), commentez la ligne
# précédente et décommentez les trois suivantes
#XXX=`xdpyinfo|awk '$0~"dimensions"{print substr($0,match($0,/[[:digit:]]/),match($0,"x")-match($0,/[[:digit:]]/))}'`
#YYY=`xdpyinfo|awk '$0~"dimensions"{print substr($0,match($0,"x")+1,match($0,"pixel")-match($0,"x")-1)}'`
#GEOMETRY=${XXX}x${YYY}
 
# Position depuis où vous voulez regarder.
# Pour trouver la valeurs regarder dans les liens en fin de la page
# http://doc.ubuntu-fr.org/xplanet#Voir_aussi
# ou bien cherchez dans WikiPedia (par exemple) le nom de votre ville
# ou encore utilisez un GPS (Guide pour Paumé Solitaire :)
# Nice  L = 43.700°    43° 42'N; H = 7.266274°    7° 15′E
#   Pernes-les-Fontaines :
# Latitude : 		43° 	59′ 	55″ 	N 		43.998611°
# Longitude : 		5° 	3′ 	35″ 	E 		5.059722°
# 
LONGITUDE=5
LATITUDE=44
 
# Par rapport au Soleil, la Terre fait une rotation complète (360°) en 24 heures, soit 1° toutes les 4 minutes.
# Calculons quelle longitude est face au Soleil (LONGITUDE2)
declare -i HEURES=`date -u "+%X" | awk -F ":" '{print $1}' | sed s/"^0"/""/`
declare -i MINUTES=`date -u "+%X" | awk -F ":" '{print $2}' | sed s/"^0"/""/`
declare -i SECONDES=`date -u "+%X" | awk -F ":" '{print $3}' | sed s/"^0"/""/`
declare -i SEC=$((${HEURES}*3600+${MINUTES}*60+${SECONDES}))
declare -i LONGITUDE2=$(((43200-${SEC})*360/86400+$LONGITUDE))
 
# Par defaut il n'y a pas de projection. Rendre un globe avec la projection rectangulaire en fait une carte à plat. vous pouvez aussi essayer : ancient, azimuthal,  mercator,..
#PROJECTION=rectangular  
 
APPEND=2
 
# ***** Devenu obsolète à partir de karmic : *****
# Renome l'image de fond ainsi Gnome réalise que l'image as changé - thx to dmbasso
#if [ -e "$PREFIX$OUTPUT" ]; then
#   rm -f "$PREFIX$OUTPUT"
#   OUTPUT="$APPEND$OUTPUT"
#else
#   rm -f "$PREFIX$APPEND$OUTPUT"
#fi
# ************************************************
 
# Dans les lignes comprises entre "if" et "fi" ci-après, vous pouvez modifier le paramètre -longitude :
# mettez ${LONGITUDE} si vous désirez avoir une vue de la Terre centrée chez vous ;
# mettez ${LONGITUDE2} si vous désirez avoir une vue de la Terre centrée sur la longitude du zénith (Soleil), et votre latitude.
if [ -z $PROJECTION ]; then 
	xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -origin $ORIGINE -body $LOOK_AT -longitude ${LONGITUDE2} -latitude $LATITUDE
else
	xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -origin $ORIGINE -body $LOOK_AT -longitude ${LONGITUDE2} -latitude $LATITUDE -projection $PROJECTION
fi
 
# ***** Nécessaire pour une bonne transition, à partir de karmic : ***** 
cp ${PREFIX}${OUTPUT} ${PREFIX}${APPEND}${OUTPUT}
# **********************************************************************
 
 
# ***** Devenu obsolète à partir de karmic : *****
# met à jour le fond d'écran de Gnome
#gconftool -t str -s /desktop/gnome/background/picture_filename "$PREFIX$OUTPUT"
# délai de mise à jour en minutes
#DELAY=10m
#sleep $DELAY
#exec $0
# ************************************************

Puis rendre executable le fichier xplanet-bg :

sudo chmod +x /usr/local/bin/xplanet-bg

S'il n'existe pas encore, créez votre dossier ~/.xplanet, avec son sous-dossier images qui contient les images earth.jpg et night.jpg, comme indiqué dans Des nuages sur la Terre !.

Faites exécuter régulièrement le script xplanet-bg en modifiant le fichier /etc/crontab avec les droits administrateur et placez à la fin les lignes (en remplaçant votre_id par votre identifiant de connexion) :

# Exécute xplanet-bg toutes les 10 minutes
*/10 * * * *	votre_id /usr/local/bin/xplanet-bg

Dans votre dossier ~/.xplanet, placez le fichier xplanet.xml suivant, qui décrit le comportement de votre fond d'écran dynamique, en remplaçant, là aussi, votre_id par votre identifiant :

<background>
while (truth) {
  <static>
    <duration>590.0</duration>
    <file>/home/votre_id/.xplanet/xplanet.png</file>
  </static>
  <transition>
    <duration>10.0</duration>
    <from>/home/votre_id/.xplanet/xplanet.png</from>
    <to>/home/votre_id/.xplanet/2xplanet.png</to>
  </transition>
  <static>
    <duration>590.0</duration>
    <file>/home/votre_id/.xplanet/2xplanet.png</file>
  </static>
  <transition>
    <duration>10.0</duration>
    <from>/home/votre_id/.xplanet/2xplanet.png</from>
    <to>/home/votre_id/.xplanet/xplanet.png</to>
  </transition>
}
</background>

Utilisation

Exécutez une première fois la commande :

/usr/local/bin/xplanet-bg

pour que soient bien créés dans votre dossier ~/.xplanet les fichiers xplanet.png et 2xplanet.png.

Pour que ces deux fichiers soient actualisés dès l'ouverture de session:

  • sous GNOME, dans le menu Système → Préférences → Sessions rajouter une entrée comme suit:
    • Nom : xplanet
    • Commande : /usr/local/bin/xplanet-bg
    • Commentaires : Fond d'écran planétaire

Validez et fermez.

Enfin, faites un clic-droit sur votre Bureau, choisissez l'option Changer l'arrière-plan du bureau, puis Ajouter, choisissez ensuite le fichier .xplanet/xplanet.xml (si vous ne voyez pas .xplanet, un clic droit permet de faire afficher les fichiers cachés ; si vous ne voyez pas xplanet.xml, faites afficher "Tous les fichiers" et pas seulement les "Images"). Préférez le style "Redimensionné" sur une couleur unie noire.

Votre écran dynamique sera automatiquement mis à jour toutes les dix minutes.

Désinstallation

Vous pouvez changer de fond d'écran comme il vous semble, mais si vous désirez que votre système ne supporte plus les calculs et téléchargements nécessaires à celui-ci :

  • supprimer l'entrée xplanet dans le menu Système → Préférences → Sessions de Gnome ;
  • commentez les lignes insérées dans /etc/crontab

KDE (Kubuntu)

C'est beaucoup plus simple avec KDE. Il suffit d'aller dans le menu Paramètres du système → Bureau → Fond d'écran, sélectionner « Pas d'image » et cliquer sur le bouton « Options avancées ».

Cocher « Utiliser le programme suivant pour dessiner le fond d'écran : », sélectionner "xplanet".

On peut même facilement configurer une planète par écran dans le cas d'un ordinateur multi-écran.

Première solution

Créez un fichier texte nommé xplanet.desktop dans le répertoire /usr/share/applications/screensavers/, et copiez-y les lignes suivantes :

[Desktop Entry]
Encoding=UTF-8
Name=XPlanet
Comment=Affiche des planètes du système solaire avec XPlanet.
TryExec=xplanet
Exec=xplanet -vroot -label -body random -origin random -radius 20 -range 10 -wait 30
StartupNotify=false
Terminal=false
Type=Application
Categories=Screensaver
X-Ubuntu-Gettext-Domain=xscreensaver

Créez un lien symbolique vers /usr/bin/xplanet dans /usr/lib/xscreensaver/ :

sudo ln -s /usr/bin/xplanet /usr/lib/xscreensaver/

L'écran de veille devrait apparaître dans la liste proposée dans le menu Système > Préférences > Écrans de veille.

Seconde solution

Ce script perl permet de configurer plus finement les paramètres de XPlanet, et également d'avoir des images un peu plus variées, pas simplement centrées avec une taille fixe.

Éditez un fichier texte nommé xplanet-xscreensaver dans le répertoire $HOME/.xplanet (créez le répertoire s'il n'existe pas déjà) et copiez-y les lignes suivantes :

#!/usr/bin/perl -w
 
use strict;
 
my $width = -1;
my $height = -1;
 
## Add or delete objects and uncomment if you want only particular objects. Don't forget to uncomment the selection in newimg().
#my @body_liste = ("sun", "mercury", "venus", "earth", "moon", "mars",
#               "phobos", "deimos", "jupiter", "io", "europa", "ganymede",
#               "callisto", "saturn", "mimas", "enceladus", "tethys", "dione",
#               "rhea", "titan", "hyperion", "iapetus", "phoebe", "uranus",
#               "miranda", "ariel", "umbriel", "titania",  "oberon", "neptune",
#               "triton", "nereid", "pluto", "charon", "major");
 
 
sub newimg {
 
## Randomize the center of the image.
        my $center_x = int(rand()*$width);
        my $center_y = int(rand()*$height);
 
## Randomize the size of objects.
        my $radius = rand()*65+5;
 
## Random coordinates and north angle, you can fix them if you wish. Random values as set here are equivalent to -random option.
#       my $long = rand()*360-180;
#       my $lat = rand()*180-90;
#       my $angle = rand()*360;
 
## Comment the following line and uncomment the next one if you wish to use a custom list of objects.
        my $body = "random";
#       my $body = $body_liste[rand scalar(@body_liste)];
 
        my $cmd = "xplanet -vroot -num_times 1 -quality 100 ";
        $cmd .= " -center +$center_x+$center_y ";
        $cmd .= " -body $body -radius $radius ";
## Uncomment the following line and comment the next one if you want to fix the view.
#       $cmd .= " -longitude $long -latitude $lat -rotate $angle ";
        $cmd .= " -random ";
        $cmd .= " -starmap BSC -base_magnitude 120 ";
        $cmd .= " -label -fontsize 15 ";
        system ($cmd);
}
 
 
sub main {
 
        $_ = `xdpyinfo 2>&-`;
        ($width,$height) = m/ dimensions: +(\d+)x(\d+) pixels/;
        ($width,$height) = (640,480) unless ($width>0 && $height>0);
 
        while (1) {
                newimg();
                sleep 5;
        }
}
 
 
main;
exit 0;

Rendez-le exécutable :

chmod +x $HOME/.xplanet/xplanet-xscreensaver

Enfin, éditez le fichier $HOME/.xscreensaver et ajoutez-y la ligne suivante dans la section « programs: » :

"XPlanet"  /usr/bin/perl  $HOME/.xplanet/xplanet-xscreensaver \

L'écran de veille devrait maintenant apparaître dans la liste proposée dans le menu Système > Préférences > Écrans de veille.

Mauvaise résolution, points noirs

La Lune (ou tout autre objet) est moche, pointillée de pixels gris ? Vérifiez que les dimensions (hauteur et largeur) en pixels de l'image utilisée pour la projection (dans /etc/xplanet/images ou dans $HOME/.xplanet/images, par exemple moon.jpg) sont bien des puissances de 2 : 4096, 2048, 1024, 512… Si ce n'est pas le cas (2000x1000 par exemple), redimensionnez l'image avec The Gimp ou tout autre logiciel de dessin, de sorte que les dimensions respectent les puissances de deux.

Mes planètes sont toutes blanches/lisses !

Il manque simplement l'image de l'objet. Récupérez une carte dans un des liens proposés ci-dessous, et enregistrez-le dans $HOME/.xplanet/images/ sous le nom : nom_planète.jpg (avec le nom de la planète ou du satellite en anglais).

Programme

Position

Cartes des planètes

Vous pouvez placer ces cartes dans le dossier $HOME/.xplanet/images/.


Contributeurs : benje, claudiux.

  • xplanet.txt
  • Dernière modification: Le 25/01/2024, 14:40
  • par natim87