Mediante le opzioni per lo sfondo non si può modificare il fattore di zoom; sono impostabili solo opzioni di scalatura in rapporto alla risoluzione dello schermo.
le opzioni disponibili sono: "none", "wallpaper", "centered", "scaled", "stretched", "zoom" e "spanned", le puoi vedere e impostare dalla finestra di impostazione dello sfondo.
Mediante script puoi impostarle con gsettings; per esempio, per avere l'immagine centrata con dimensioni originali, con:
Codice: Seleziona tutto
gsettings set org.gnome.desktop.background picture-options 'centered'
workaround:
Sfruttando questo codice e aumentando il valore della risoluzione ad un valore superiore a quello dello schermo ottieni uno sfondo ingrandito.
in pratica: se la risoluzione del tuo schermo è 1920x1080, per avere uno zoom 2x, raddoppi i valori nella variabile GEOMETRY, (xplanet creerà un'immagine più grande) quindi:
sotto la riga che imposta lo sfondo inserisci:
Codice: Seleziona tutto
gsettings set org.gnome.desktop.background picture-options 'centered'
in questo caso si produce un'immagine grande, sfruttata solo in parte per la visualizzazione.
Un modo migliore:
aggiungere il parametro '-radius' alla riga di codice di xplanet.
se non specificato, il valore di radius è 45, aumentandolo ottieni lo zoom.
a l'elenco di variabili ad inizio script aggiungi la variabile RADIUS e la imposti al valore che vuoi. Es.
o meglio!
Puoi passare il valore da linea di comando, come ultimo parametro, metti:
e incrementa di uno il valore di PARAM da 5 a 6
va aggiunta la variabile anche a fine riga di
exec
nella riga:
Codice: Seleziona tutto
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE ...
aggiungi
che diventa:
Codice: Seleziona tutto
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE -radius $RADIUS ...
la riga di codice per lanciare lo script, con radius 200, diventa:
Purtroppo la risoluzione della mappa usata da xplanet è bassa; è un software ideato per la simulazione del sistema solare, non della sola Terra.
Già che ci sono posto lo script con cui ho fatto le prove, dovrebbe fungere sia con Mate che con Gnome3
Codice: Seleziona tutto
#!/bin/bash
#
# Uso: ./sfondo_satellitare longitudine latitudine intervallo incremento_longitudine incremento_latitudine radius
# ~/sfondo_satellitare 12,30 41,53 20m 5 0 45
PREFIX=~/
OUTPUT=earth.png
APPEND=2
GEOMETRY=$(xrandr | grep '\*' | head -1 | cut -b 4-12)
#GEOMETRY=3840x2160
# GEOMETRY=1366x768
TIPO_DI_SCALATURA='centered' # "none", "wallpaper", "centered", "scaled", "stretched", "zoom" e "spanned"
LONGITUDE=$1
LATITUDE=$2
DELAY=$3
LONG_INC=$4
LAT_INC=$5
RADIUS=$6
LONG_NEXT=$(( (LONGITUDE + LONG_INC) % 360 ))
LAT_NEXT=$(( (LATITUDE + LAT_INC) % 360 ))
PARAM=6
if [ $# -ne "$PARAM" ]; then
echo "Parametri insufficienti."
echo "Uso: sfondo_satellitare longitudine latitudine intervallo_aggiornamento incremento_longidutine incremento_latitudine"
exit 0
else
if [ -e "$PREFIX$OUTPUT" ]
then
rm "$PREFIX$OUTPUT"
OUTPUT="$APPEND$OUTPUT"
else
rm "$PREFIX$APPEND$OUTPUT" 2>/dev/null
fi
if [ -z $PROJECTION ]; then
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE -radius $RADIUS -label_string "Rev. by UbuNuovo" -labelpos "-15+35"
else
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE -radius $RADIUS -projection $PROJECTION -label_string "Rev. by UbuNuovo" -labelpos "-15+35"
fi
if [ "$DESKTOP_SESSION" = "mate" ]
then
gsettings set org.mate.background picture-filename "$PREFIX$OUTPUT" # per Mate
gsettings set org.mate.background picture-options "$TIPO_DI_SCALATURA" # per Mate, tipo di scalatura
else
gsettings set org.gnome.desktop.background picture-uri "file://$PREFIX$OUTPUT" # per Gnome3
gsettings set org.gnome.desktop.background picture-options "$TIPO_DI_SCALATURA" # per Gnome3, tipo di scalatura
fi
# gconftool -t str -s /desktop/gnome/background/picture_filename "$PREFIX$OUTPUT" #per gnome2
if [ $DELAY != "0" ]; then
sleep $DELAY
exec $0 $LONG_NEXT $LAT_NEXT $DELAY $LONG_INC $LAT_INC $RADIUS
fi
fi
exit