Contenu | Rechercher | Menus

Arrière plan dynamique (Gnome)

Le bureau Gnome 2.28 permet un fond d'écran dynamique avec le bureau Gnome. Ce fond dynamique n'est pas constitué d'une image animée ou d'une vidéo mais d'une succession d'images. Gnome utilise un fichier XML qui contient toutes les informations nécessaire pour modifier le fond d'écran comme un diaporama.

Les balises

  • <background>
    Balise mère qui encadre tout le code XML
  • <starttime>
    Balise qui sert à définir la date et l'heure où le background commencera à s'exécuter
  • <year>
    Année de départ
  • <month>
    Mois de départ
  • <day>
    Jour de départ
  • <hour>
    Heure de départ
  • <minute>
    Minute de départ
  • <second>
    Seconde de départ
  • <static>
    Encadre le code pour l'image courante
  • <duration>
    Nombre de secondes que l'image restera en arrière plan
  • <file>
    L'adresse (parcours) où ce trouve l'image
  • <transition>
    Encadre le code pour la transition d'images
  • <from>
    L'adresse (parcours) de l'image courante qui sera remplacée par une prochaine image
  • <to>
    L'adresse (parcours) de l'image suivante qui remplace l'image courante

Les algorithmes

Le niveau correspond au niveau dans la hiérarchie du fichier XML

background (niveau 1)

Cette balise est utilisée pour encadrer tout le code pour le fichier. Elle est la première balise ainsi que la dernière balise du doccument.

starttime (niveau 2)

Regroupe les balises year, month, day, hour, minute et second. Celles-ci sont utilisées pour entrer la date et l'heure à laquelle vous voulez que l'arrière plan commence à s'animer.

Il est à noter que :

  • year : requiert 4 chiffres (ex : 2010)
  • month : requiert 2 chiffres (ex : 10), valeurs entre 01 -12
  • day : requiert 2 chiffres (ex : 12), valeurs entre 01 - 31
  • hour : requiert 2 chiffres (ex : 21), valeurs entre 00 - 23
  • minute : requiert 2 chiffres (ex : 40), valeurs entre 00 - 59
  • seconde : requiert 2 chiffres (ex : 32) valeurs entre 00 - 59

static (niveau 2)

Regroupe les balises duration et file pour déterminer quel est le lien de l'image courante et combien de temps elle restera affichée.

transition (niveau 2)

Regroupe les balises duration, from et to. Elle est utilisée lors de la transition de deux images. La transition utilisée est une transition linéaire (par exemple 5 % est enlevé à l'image courante et 5 % est donné à l'image suivante).

duration : est le nombre de secondes que durera la transition from : est le chemin absolu sur le disque de l'image présentement affichée comme arrière plan. to : est le chemin absolu sur le disque de l'image qui sera affichée comme arrière plan.

Exemple de code

Les fichiers ne doivent pas contenir les caractères suivants : (, ), et &.

Ce code est un exemple qui montre l'organisation d'un arrière plan dynamique qui contient trois images (ArrièrePlan1.jpg, ArrièrePlan2.jpg et ArrièrePlan3.jpg). La durée de chaque image est de 600 secondes (10 minutes) et la transition se fait en 5 secondes :

<background>
  <starttime>
    <year>2009</year>
    <month>08</month>
    <day>04</day>
    <hour>00</hour>
    <minute>00</minute>
    <second>00</second>
  </starttime>
<!-- Cette animation commencera le 4 août, de l'année 2009, à minuit. -->
  <static>
    <duration>600.0</duration>
    <file>/usr/share/backgrounds/ArrierePlan1.jpg</file>
  </static>
  <transition>
    <duration>5.0</duration>
    <from>/usr/share/backgrounds/ArrierePlan1.jpg</from>
    <to>/usr/share/backgrounds/ArrierePlan2.jpg</to>
  </transition>
  <static>
    <duration>600.0</duration>
    <file>/usr/share/backgrounds/ArrierePlan2.jpg</file>
  </static>
  <transition>
    <duration>5.0</duration>
    <from>/usr/share/backgrounds/ArrierePlan2.jpg</from>
    <to>/usr/share/backgrounds/ArrierePlan3.jpg</to>
  </transition>
  <static>
    <duration>600.0</duration>
    <file>/usr/share/backgrounds/ArrierePlan3.jpg</file>
  </static>
  <transition>
    <duration>5.0</duration>
    <from>/usr/share/backgrounds/ArrierePlan3.jpg</from>
    <to>/usr/share/backgrounds/ArrierePlan1.jpg</to>
  </transition>
 </background>

Automatisation de la création du fichier XML

Mon script perso

create_diaporama.sh

#!/bin/bash
 
if [ $# -eq 0 ] || [ $# -gt 1 ]; then echo "$0 folder" && exit 2; fi
 
# Si chemin absolu alors continue, sinon ajout du dossier courant
if ! echo $1 | grep -iq "^/"; then
	FOLDER="$(pwd)/$1"
else
	FOLDER="$1"
fi
 
# Test si le dossier est accessible et est un répertoire
[ ! -d ${FOLDER} ] && echo "Impossible d'acceder a ${FOLDER}" && exit 2
[ ! -r ${FOLDER} ] && echo "Impossible d'acceder a ${FOLDER}" && exit 2
 
# Suppression du slash de fin
FOLDER="$(echo ${FOLDER} | sed 's:\/$::')"
 
# Supression des parentheses
find ${FOLDER} -type f -name "*)*" -exec rename 's/\)/_/g' {} \;
find ${FOLDER} -type f -name "*(*" -exec rename 's/\(/_/g' {} \;
 
# Supression des espaces
find ${FOLDER} -type f -name "* *" -exec rename 's/ /_/g' {} \;
 
# Fichier de sortie
xml_file="${FOLDER}/$(echo ${FOLDER} | sed 's:.*/\(.*\)$:\1:').xml"
[ -e ${xml_file} ] && echo "ATTENTION le fichier ${xml_file} existe" && exit 2
 
# Constante
STATIC_DURATION='10.0'
TRANSITION_DURATION='5.0'
 
# Initialisation du fichier
cat > ${xml_file} << EOF_initialisation
<background>
  <starttime>
    <year>2009</year>
    <month>08</month>
    <day>04</day>
    <hour>00</hour>
    <minute>00</minute>
    <second>00</second>
  </starttime>
EOF_initialisation
 
# Corps du fichier XML
old_file=''
first_file=''
for file in ${FOLDER}/*.{png,jpg,jpeg,gif,bmp,svg}; do
	[ -z $old_file ] && old_file=$file && first_file=$file && continue
	cat >> ${xml_file} << EOF_static_transition
  <static>
    <duration>${STATIC_DURATION}</duration>
    <file>${old_file}</file>
  </static>
  <transition>
    <duration>${TRANSITION_DURATION}</duration>
    <from>${old_file}</from>
    <to>${file}</to>
  </transition>
EOF_static_transition
	old_file=$file
done
 
# Fin du fichier - boucle sur le premier fichier de la liste
cat >> ${xml_file} << EOF_fin_fichier
  <static>
    <duration>${STATIC_DURATION}</duration>
    <file>${file}</file>
  </static>
  <transition>
    <duration>${TRANSITION_DURATION}</duration>
    <from>${file}</from>
    <to>${first_file}</to>
  </transition>
</background>
EOF_fin_fichier
  • chmod +x create_diaporama.sh
  • ./create_diaporama.sh Images
  • Le script va créer dans le répertoire Images le fichier Images.xml

Autres Scripts

Installation de l'arrière plan dynamique personnalisé

  • Dans la bare de menu, cliquez ensuite sur : Système → Préférences → Apparence
  • Cliquez sur l’onglet : Arrière-Plan
  • Cliquez sur le bouton « + Ajouter »
  • Allez dans le répertoire où se situe le fichier XML personnalisé
  • Sélectionnez afficher tous les fichiers
  • Sélectionnez le fichier XML
  • Cliquez sur « Ouvrir »

Sous Ubuntu 12.04, si vous ne réussissez pas sélectionner "afficher tout les fichiers", contournez le problème en suivant la page diaporama_fond_d_ecran.

Autre : Pour faire apparaître votre fond d'écran dans la liste, une autre solution consiste à modifier le fichier /usr/share/gnome-background-properties/precise-wallpapers.xml et à ajouter les lignes :

     <wallpaper deleted="false">
        <name>Mon fond d'ecran dynamique</name>
        <filename>chemin_vers_mon wallpaper.xml</filename>
        <options>zoom</options>
    </wallpaper>


Contributeurs : Matt_Rodat

source : http://fr.wikibooks.org/wiki/Arri%C3%A8re_plan_dynamique_(Gnome), http://www.linuxjournal.com/content/create-custom-transitioning-background-your-gnome-228-desktop


arriere_plan_dynamique_gnome.txt · Dernière modification: Le 29/07/2012, 22:54 par YoBoY
Le contenu de ce wiki est sous licence : CC BY-SA v3.0