Papel de parede - Mudança automática no Ubuntu/Debian

Publicado por Iraziman da Silva Moura (última atualização em 01/03/2012)

[ Hits: 8.725 ]

Download 5314.wallpaper.sh

Download 1330009768.wallpaper.sh (versão 2)




Este script foi criado para fazer mudança automática dos papéis de parede nas pastas que você desejar. Foi feito em Outubro do ano passado, na época estava iniciando nos scripts e queria fazer uma mudança randômica de várias fotos como papel de parede.

Ele não tá muito comentado mais funciona que é uma beleza!

Salve-o na pasta do usuário, abra um terminal e use o comando ". wallpaper.sh"

  



Versões atualizadas deste script

Versão 2 - Enviado por Iraziman da Silva Moura em 23/02/2012

Changelog: Foi acrescido o comando para mudança do wallpaper no final do script.

Download 1330009768.wallpaper.sh


Esconder código-fonte

#!/bin/bash

# set -e

# O script usa o sudo no final para o usuário que executa.

DIR_FOTO=("/usr/share/backgrounds") # Array que guarda as pastas que contém as imagens.
# Exemplo com mais de uma pasta, Assim vc pode até criar uma pasta wallpaper pro usuário e acrescenta-la ao script.
# DIR_FOTO=("/media/NTFS_BACKUP/BACKUP/Meus Documentos/Webshots Data" "${HOME}/Imagens/wallpaper" "/usr/share/images/grub" "/usr/share/backgrounds")

FILE_BACKGROUND=/usr/share/backgrounds/background-1.xml # variável que guarda o nome do arquivo de Wallpaper.
# Verifique se o arquivo no seu sistema tem este nome e o salve antes de executar o script. Se não for este o nome do arquivo é só rodar o script,
# clicar com o direito na Área de trabalho e pedir para alterar o plano de fundo.
# Vc tbm pode usar o comando abaixo que modifica direto no "Editor de Configurações do Gnome". Detalhe: vc tem que ser root ou usar o sudo na frente
# gconftool-2 --set "/desktop/gnome/background/picture_filename" --type string "/usr/share/backgrounds/contest/background-1.xml"
# Se vc souber é só acrescentar o comando acima no fim do script. ok!

STATIC="95.0" # Tempo que a imagem permanece estático.
TRANSITION="5.0" # Tempo de transição entre as imagens.


TMPFILE=$(mktemp ./temp.XXX)
LIST_FILES=$(find "${DIR_FOTO[@]:0}" | egrep ".(jpg|svg|png|tga)$")


primeira ()
{ 
cat <<EOF > "$(echo $TMPFILE)"
<background>
  <starttime>
    <year>$(date +%Y)</year>
    <month>$(date +%m)</month>
    <day>$(date +%d)</day>
    <hour>00</hour>
    <minute>00</minute>
    <second>00</second>
  </starttime>
<!-- This animation will start at midnight. -->
EOF
} 

segunda ()
{ 
cat <<EOF >> "$(echo $TMPFILE)"
    <to>$FILE</to>
  </transition>
EOF
} 

terceira ()
{ 
cat <<EOF >> "$(echo $TMPFILE)"
  <static>
    <duration>$STATIC</duration>
    <file>$FILE</file>
  </static>
  <transition>
    <duration>$TRANSITION</duration>
    <from>$FILE</from>
EOF
} 

quarta ()
{ 
cat <<EOF >> "$(echo $TMPFILE)"
    <to>$FIM_FILE</to>
  </transition>
</background>
EOF
}

while read FILE; do x[i]="$FILE"; let i++; done < <(echo "${LIST_FILES}")
i=0
cnt=${#x[@]}
cnt_1=$(( ${#x[@]}-1 ))

SINAL=0
while read FILE
do
 if [ "$SINAL" -eq "0" ]
 then
 SINAL=1
 primeira
 FIM_FILE=$FILE
 else
 segunda
 fi
 terceira
done < <(for i in $(seq 0 $cnt_1); { echo -e "$RANDOM\t${x[$i]}"; } | sort | cut -f2)
 quarta

sudo mv $TMPFILE $FILE_BACKGROUND&&
sudo chmod 644 $FILE_BACKGROUND&&
sudo chown root. $FILE_BACKGROUND&&
echo "arquivo $FILE_BACKGROUND criado"

exit 0

Scripts recomendados

Remoção completa de gateway para Tivoli Framework

Cotação de ações da BM&FBOVESPA no bash com Dialog

Detector de Bruteforce no SSH e Bloqueio de IP Atacante

Ver endereço IP externo com DuckDuckGo + wget

Mostrando informações sobre conexões ppp dos clientes


  

Comentários
[1] Comentário enviado por victormag em 23/02/2012 - 11:19h

Tudo bem, executei pelo terminal, mas nao aconteceu nada!
Tenho que botar em qual pasta? tenho que fazer algo a mais?

[2] Comentário enviado por selvaking em 23/02/2012 - 21:15h

corrige a linha

FILE_BACKGROUND=/usr/share/backgrounds/background-1.xml

para

FILE_BACKGROUND=/usr/share/backgrounds/contest/background-1.xml

e acrescenta

gconftool-2 --set "/desktop/gnome/background/picture_filename" --type string "$FILE_BACKGROUND"

antes da linha final que é "exit 0"
ficando assim:

echo "arquivo $FILE_BACKGROUND criado"
gconftool-2 --set "/desktop/gnome/background/picture_filename" --type string "$FILE_BACKGROUND"
exit 0


Contribuir com comentário