Tips en Trucs 2012

Xplanet puur

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.
Desktop

Xplanet gebruiken als slideshow met achtergrondafbeeldingen voor het Bureaublad

Het aanmaken van de achtergrondafbeelding

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.

De achtergrond van het Bureaublad instellen als slideshow

Na het succesvol testen van het bovenstaande script in de terminal kan het script ingezet worden. In KDE kun je als volgt een wisselende achtergrondafbeelding voor het Bureablad instellen: Bureaubladinstellingen

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.

Schermbeveiling met roterende aarde

Wie een grafische kaart met 3D mogelijkheden bezit en de noodzakelijke drivers geïnstalleerd heeft, kan als schermbeveiliging een openGL versnelde roterende aarde instellen: GLPlanet

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.

En verder

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).