web-dev-qa-db-fra.com

Script pour créer des entrées XML personnalisées pour x-wallpapers.xml

Je sais qu'il existe un moyen de le faire, mais je viens de vider un tas de mes fichiers de fonds d'écran préférés dans/usr/share/backgrouds /. Pour que mon Ubutnu 17.10 puisse les utiliser, je dois éditer le fichier artful-wallpapers.xml et ajouter chaque nom de fichier à une instruction ressemblant à ceci:

<wallpaper>
 <name>calm</name>
 <filename>/usr/share/backgrounds/02488_calm_1440x900.jpg</filename>
 <options>zoom</options>
 <pcolor>#000000</pcolor>
 <scolor>#000000</scolor>
 <shade_type>solid</shade_type>
</wallpaper>

C'est long et fastidieux de le faire un à la fois, et je suis sûr d'avoir déjà fusionné des données auparavant, mais je ne me souviens plus comment.

Un script serait très utile, ou au moins des instructions pour un tutoriel.

Merci d'avance.

Barre

2
Rod_H

Noms de fichiers au format XML dans un dossier via un script Bash

Vous pouvez accomplir cela facilement avec un script bash. Cela produira tout le code XML dont vous avez besoin afin que vous puissiez le copier/coller dans artful-wallpapers.xml.

Ce script prendra tous les noms de fichiers dans le dossier actuel et le formatera dans le XML de votre question. Vous pouvez facilement le modifier pour répondre à vos besoins.

Le script BASH

#!/bin/bash
shopt -s nullglob
arr=(*)

for i in "${arr[@]}"
do
if [ "$i" != "makeXML" -a ! -d "$i" ]
then
   echo "<wallpaper>
 <name>$i</name>
 <filename>/usr/share/backgrounds/$i</filename>
 <options>zoom</options>
 <pcolor>#000000</pcolor>
 <scolor>#000000</scolor>
 <shade_type>solid</shade_type>
</wallpaper>
"
fi
done

Comment l'utiliser

Créez un dossier dans votre dossier de départ appelé "fonds d'écran" et placez toutes les images que vous souhaitez utiliser dans ce dossier.

Placez le script ci-dessus dans un fichier texte appelé makeXML dans le dossier contenant vos photos (~/fonds d'écran). Courez depuis le terminal:

$ cd ~/wallpapers
$ bash makeXML

Collez la sortie à l'écran dans votre fichier x-wallpapers.xml dans la balise wallpapers.

Enfin, déplacez toutes les images de ~/wallpapers sur/usr/share/backgrounds et supprimez le dossier wallpapers.

1