Script para criar entradas XML personalizadas para x-wallpapers.xml

1

Eu sei que há uma maneira de fazer isso, mas acabei de despejar um monte de meus arquivos de papel de parede favoritos em / usr / share / backgrouds /. Para que meu Ubutnu 17.10 os use, eu preciso editar o arquivo artful-wallpapers.xml e adicionar cada nome de arquivo a uma declaração como esta:

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

É longo e tedioso fazer um de cada vez, e tenho certeza que já juntei dados antes, mas para a vida de mim não consigo lembrar como.

Um script seria muito útil ou, pelo menos, instruções para um tutorial.

Obrigado antecipadamente.

Rod

    
por Rod_H 06.05.2018 / 20:27

1 resposta

0

Nomes de arquivo no formato XML na pasta por meio do script Bash

Você pode realizar isso facilmente com um script bash. Isso produzirá todo o xml necessário para que você possa copiá-lo / colá-lo em artful-wallpapers.xml.

Este script irá pegar todos os nomes de arquivos na pasta atual e formatá-los no XML da sua pergunta. Você pode modificá-lo facilmente para atender às suas necessidades.

O 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

Como usar

Crie uma pasta na sua pasta pessoal chamada 'wallpapers' e coloque todas as imagens que você deseja usar nesta pasta.

Coloque o script acima em um arquivo de texto simples chamado makeXML dentro da pasta com suas fotos (~ / wallpapers). Corra do terminal:

$ cd ~/wallpapers
$ bash makeXML

Cole a saída na tela no arquivo x-wallpapers.xml dentro da tag de papéis de parede.

Por fim, mova todas as imagens de ~ / wallpapers para / usr / share / backgrounds e exclua a pasta wallpapers.

    
por Joshua Besneatte 06.05.2018 / 21:55