Hoewel er een grafische gebruikersomgeving voor xplanet bestaat (XplanetFX), heeft het werken met de terminalopdracht xplanet voordelen.
Door de xplanet terminalopdracht te gebruiken, leer je hoe xplanet in elkaar steekt, waardoor je meer de mogelijkheden van xplanet ziet en gebruikt.
Daarnaast kun je de terminalopdracht opnemen in scripts en zo zelf een eigen toepassing creëren.
Door de terminalopdracht kun je xplanet inzetten in situaties waar XplanetFX niet kan ingezet worden.
Denk daarbij aan grafische opstartschermen in Grub 2 en Plymouth en het aanmaken van afbeeldingen voor schermbeveiligingen.
Hoewel een slideshow bestaat uit verschillende afbeeldingen, hebben we met één wisselende afbeelding voldoende. Deze afbeelding kun je met het volgende script aanmaken:
#!/bin/bash # xplanet.sh # Controleer of xplanet geïnstalleerd is if [ ! -x /usr/bin/xplanet ]; then kdesu /sbin/yast2 --install xplanet fi # Maak indien nodig een verborgen map voor de achtergrondafbeelding aan if [ ! -d $HOME/.pinda/achtergrond ]; then mkdir -p $HOME/.pinda/achtergrond fi # Maak indien nodig een verborgen map voor xplanet onderdelen aan if [ ! -d $HOME/.pinda/xplanet ]; then mkdir -p $HOME/.pinda/xplanet fi # Haal de verschillende xplanet onderdelen van het internet # alle opgehaalde foto's herschalen we naar het formaat 2048x1024, # met foto's met gelijke formaten werkt xplanet sneller # NASA Blue Marble Collection # Per maand een verschillende foto van het aardoppervlak ophalen, # deze foto's verschillen onder andere in de ijsbedekkingen aan de polen if [ ! -e $HOME/.pinda/xplanet/`date +%m`.jpg ]; then wget --output-document="$HOME/.pinda/xplanet/download.jpg" http://gridportal-ws01.hep.ph.ic.ac.uk/bluemarble_all_year/world.topo.bathy.2004`date +%m`.3x5400x2700.jpg convert $HOME/.pinda/xplanet/download.jpg -resize 2048x1024 -quality 95 $HOME/.pinda/xplanet/`date +%m`.jpg fi # Haal indien nodig een foto van het aardoppervlak tijdens de nacht op if [ ! -e $HOME/.pinda/xplanet/night.jpg ]; then wget --output-document="$HOME/.pinda/xplanet/download.jpg" https://netfiles.uiuc.edu/cmampre2/www/Pictures/Desktopables/earth_lights_lrg.jpg convert $HOME/.pinda/xplanet/download.jpg -resize 2048x1024 -quality 95 $HOME/.pinda/xplanet/night.jpg fi # Haal indien nodig een foto van het relief van de aarde op if [ ! -e $HOME/.pinda/xplanet/bump.jpg ]; then wget --output-document="$HOME/.pinda/xplanet/download.jpg" http://eoimages.gsfc.nasa.gov/images/imagerecords/73000/73934/srtm_ramp2.world.5400x2700.jpg convert $HOME/.pinda/xplanet/download.jpg -resize 2048x1024 -quality 95 $HOME/.pinda/xplanet/bump.jpg fi # Haal indien nodig een foto van de oceaandieptes van de aarde op, # zorgt voor extra reflectie bij diepe oceanen if [ ! -e $HOME/.pinda/xplanet/specular.jpg ]; then wget --output-document="$HOME/.pinda/xplanet/download.jpg" http://eoimages.gsfc.nasa.gov/images/imagerecords/73000/73963/gebco_bathy.5400x2700.jpg convert $HOME/.pinda/xplanet/download.jpg -resize 2048x1024 -quality 95 $HOME/.pinda/xplanet/specular.jpg fi # Haal per dag een foto met de wolkenformaties op, # éénmaal per dag is gratis, om het weer realtime te kunnen volgen moet een bijdrage betaald worden filemtime=`stat -c %Y $HOME/.pinda/xplanet/clouds_2048.jpg` currtime=`date +%s` if [ $((currtime - filemtime)) -gt 86400 ]; then wget --output-document="$HOME/.pinda/xplanet/download.jpg" http://xplanetclouds.com/free/coral/clouds_2048.jpg mv -f $HOME/.pinda/xplanet/download.jpg $HOME/.pinda/xplanet/clouds_2048.jpg fi # achtergrond met willekeurige gekleurde sterren aanmaken # meer uitleg over deze opdracht op http://www.imagemagick.org/Usage/advanced/#stars # het size argument bevat de afmetingen van uw scherm # het threshold argument bepaalt het aantal sterren convert -size 1920x1200 xc: +noise Random -channel R -threshold 0.01% -negate -channel RG -separate +channel \( xc: +noise Random \) -compose multiply -flatten -virtual-pixel tile -blur 0x.4 -contrast-stretch .8% $HOME/.pinda/xplanet/stars.png # Maak een configuratiebestand voor xplanet aan # De verschillende opties staan beschreven in het bestand /usr/share/xplanet/config/README cat <<EOF > $HOME/.pinda/xplanet/xplanet.config [default] max_radius_for_label=0 [earth] map=/home/dany/.pinda/xplanet/`date +%m`.jpg cloud_map=/home/dany/.pinda/xplanet/clouds_2048.jpg night_map=/home/dany/.pinda/xplanet/night.jpg bump_map=/home/dany/.pinda/xplanet/bump.jpg specular_map=/home/dany/.pinda/xplanet/specular.jpg EOF # Maak elke 20 minuten een nieuwe achtergrondafbeelding while : do # Maak één (-num_times 1) achtergrondafbeelding aan # het geometry argument bevat de afmetingen van het scherm # het center argument centreert de aarde (rekening houdend met beneden een taakbalk met een hoogte van 26 beeldpunten) # het argument longitude bevat de lengtegraad van de plaats waar je woont, je kunt ook gebruik maken van het argument latitude voor de breedtegraad # het argument background voegt de willekeurige sterren toe # het argument config zorgt dat het door dit script aangemaakt bestand met opties wordt gebruikt # het argument output bevat het pad en de bestandsnaam van de aan te maken afbeelding # De verschillende opties staan beschreven in het bestand /usr/share/doc/packages/xplanet/README xplanet -num_times 1 -geometry 1920x1200 -center +960+587 -longitude 3.13 -background $HOME/.pinda/xplanet/stars.png -config $HOME/.pinda/xplanet/xplanet.config -output $HOME/.pinda/achtergrond.png # xplanet heeft tijd nodig om de afbeelding aan te maken, # indien de achtergrondafbeelding gewisseld wordt tijdens het aanmaken van de achtergrondafbeeldingen kunnen storingen voorkomen # het verplaatsen van een door xplanet afgewerkte afbeelding gaat zo snel dat storingen zelden of nooit zullen voorkomen mv $HOME/.pinda/achtergrond.png $HOME/.pinda/achtergrond/achtergrond.png # wacht 20 minuten (= 1200 seconden) sleep 1200 done
Dit script is maar een voorbeeld en voor verbetering vatbaar. Zo gebruiken we elke maand een andere foto van het aardoppervlak, elke dag een andere foto met wolkenformaties. Dit heeft als gevolg dat dit script elke dag opnieuw moet herstart worden. Bij mij thuis is dit geen probleem, maar voor mensen die hun computer (laptop) nooit afzetten (maar standby gebruiken) zullen het script moeten aanpassen zodat het vernieuwen van deze twee foto's in de eindeloze while lus wordt opgenomen (leuke oefening).
Een tweede verbetering is het gebruik van een constante voor het instellen van de schermafmetingen (in het voorbeeld 1920x1200). Deze constante definieer je dan vanzelfsprekend vooraan in het script. Het gebruik van constanten kun je uitbreiden naar andere opties zoals het aantal sterren, enz.
Voor je het script kunt testen, maak je het met de volgende opdracht uitvoerbaar:
chmod +x xplanet.sh
Het script test je het best in de terminal, zo kun je eventuele meldingen lezen en indien er foutmeldingen tussenzitten er gepast op reageren.
Om het script dat een eindeloze lus bevat af te breken, druk je de toetscombinate Ctrl+C.
Daar het de bedoeling is steeds andere xplanet-afbeeldingen aan te maken, kun je het script xplanet.sh naar de verborgen map .kde4/Autostart kopiëren, verplaatsen of verbinden. Bij elke start van KDE wordt het script dan automatisch gestart.
Vergeet niet de instellingen voor Energiebeheer aan te passen. Het geeft geen zin een schermbeveiliging na 15 minuten inactiviteit te starten als het energiebeheer na vijf minuten het scherm reeds uitschakelde.
Het enige wat nu nog beter kan is het thema in het opstarten van de computer op te nemen. Dit bespreek ik zeer binnenkort, na het verschijnen van openSUSE 12.2 met zijn nieuwe opstartsysteem Grub 2 en plymouth. En natuurlijk werkt de tip van vandaag ook vlekkeloos in openSUSE 12.2 (RC2).