KDE4 i tapeta World Sunlight Map

Ciekawe rzeczy dzieją się na świecie. Słońce oświetla raz jeden kontynent, raz drugi. Chmury zasłaniają czasem niezły kawałek ziemi. Miło jest mieć podgląd tego na biurku na żywo. No, prawie na żywo i prawie na prawdę.

Niedawno znalazłem w sieci ciekawą stronę http://​www​.opentopia​.com/ (Free Live Webcams). Na tej stronie zaś jest w miarę na bieżąco aktualizowana pogodowa mapa świata: http://​www​.opentopia​.com/​s​u​n​l​i​g​h​t​m​a​p​r​e​c​t​.html. Obraz składany jest z dwóch statycznych zdjęć ziemi - dziennego i nocnego, do tego dokładany jest rzeczywisty układ chmur. Zapragnąłem koniecznie mieć „to” na swoim pulpicie KDE4.

Znalazłem ciekawy projekt - niestety dla Gnome: https://​gist​.github​.com/​f​m​a​c​h​/​9​79724. Dla Windows też jest coś: http://​codefromthe70s​.org/​d​e​s​k​t​o​p​e​a​r​t​h​_​d​l​.aspx. Wygląda na to, że dla KDE4 nie ma nic gotowego zatem trzeba coś zrobić ręcznie.

Wszystko co tu znajdziesz to kompilacja różnych pomysłów znalezionych w Sieci plus własna inwencja. Opisana tu solucja została zgrabnie zaimplementowana w dystrybucji Kubuntu 13.04.

Najpierw niezbędny widget plazmy

- Na pulpicie prawy klawisz myszy: Odblokuj elementy interfejsu (chyba, że już są odblokowane)
- Jeszcze raz prawy klawisz myszy: Dodaj elementy interfejsu -> Pobierz nowe elementy interfejsu -> Pobierz nowe elementy interfejsu Plazmy -> Znajdź: „KSetWallpaper” -> Instaluj

I tyle. Widgeta nie trzeba umieszczać nigdzie. Wystarczy, żeby był zainstalowany.

Po wtóre skrypt automagiczny

Skrypt umieściłem sobie w katalogu ~/​bin i nazwałem sunlightwallpaper​.sh
Tapeta ma się znajdować w katalogu /​home/​pub/​wallpapers, który musi już istnieć. Oczywiście możesz to zmienić.

#!/bin/bash

# bahamas
#IMAGE="http://64.150.193.71/jpg/image.jpg"
# world
IMAGE="http://www.opentopia.com/images/cams/world_sunlight_map_rectangular.jpg"
DIRECTORY="/home/pub/wallpapers"
cd $DIRECTORY
wget $IMAGE -O wall-new.jpg
cp wall-new.jpg wall.jpg
dbus-send --session --dest=org.new_wallpaper.Plasmoid --type=method_call /org/new_wallpaper/Plasmoid/0 org.new_wallpaper.Plasmoid.SetWallpaper string:$DIRECTORY/wall.jpg
rm wall-new.jpg
cd ..

Oczywiście można sobie wstawić inny obrazek i go aktualizować - np. widok plaży na Bahamach. 🙂

Znalazłem też inne źródło map:

Map = mercator|hemisphere|mollweide|peters|rectangular
Size = 800|1024|1152|1280|1440|1600
http://static.die.net/earth/%Map%/%Size%.jpg

Trzecie primo - crond

W pliku /​etc/​crontab (jako root) dopisuję linijkę (zmień moja_​nazwa_​uzytkownika na nazwę uzytkownika, którego używasz)

15 *    * * *   moja_nazwa_uzytkownika /home/moja_nazwa_uzytkownika/bin/sunlightwallpaper.sh

Zatem skrypt będzie się wykonywał piętnaście minut po każdej pełnej godzinie. I dobrze, gdyż zauważyłem, że mapy zmieniają się około 10 minut po pełnej godzinie.

Testy

Wystarczy (jako standardowy użytkownik) uruchomić plik ~/bin/sunlightwallpaper.sh i sprawdzić czy tapeta stanie się podobna do zamieszczonego przeze mnie na początku screenshota.

Oczywiście idealnie byłoby napisać plazmowy wallpaper, który robiłby to wszystko automagicznie... I być może tak się kiedyś stanie.

Powodzenia!