Esta é uma versão arquivada/estática do antigo Blog do André. Isso significa que todo o conteúdo aqui presente não irá ser atualizado, e pode conter erros. Algumas funcionalidades poderão não estar disponíveis nesta versão arquivada.
31
Ago 2012

Rotação automática de wallpapers no LXDE

A rotação automática de wallpapers (por vezes também chamada slideshow) é uma funcionalidade interessante que alguns desktop managers disponibilizam ao utilizador (e também sistemas operativos como o Windows ou o MacOS). Enquanto para alguns pode ser apenas um fator de distração, para outros pode ser uma excelente opção para alternar o wallpaper de forma periódica sem esforço (quer sejam as imensas fotos de família ou apenas para mudar de wallpaper mais frequentemente, em busca de alguma inspiração nas horas mortas).

Que eu tivesse visto, não há uma forma fácil de o fazer no LXDE. Nas opções básicas, apenas é possível colocar um único wallpaper. Lembrei-me então de procurar um script para rodar o wallpaper. A minha distribuição é o Fedora LXDE Spin, por isso o LXDE vem com o PCManFM. Este programa é usado para explorar pastas de forma gráfica, responsável por apresentar os ícones de desktop e, consequentemente, o wallpaper. Podemos usá-lo para alterar o nosso wallpaper de forma automática. Vejamos então o script.

Script de rotação para wallpapers

#!/bin/bash

# Pasta onde têm os vossos wallpapers
DIR=/home/andre/wallpapers/
FLOOR=1
RANGE=`ls -1 "$DIR"/*.{png,jpg} | wc -l`

number=$RANDOM
while [ "$number" -le $FLOOR ]; do
        number=$RANDOM
done
let "number %= $RANGE"  # Escolher um dos wallpapers
COUNTER=1
for X in "$DIR"/*.{png,jpg}
do
if [ $number -eq $COUNTER ]; then
 pcmanfm --set-wallpaper "$X"
fi
COUNTER=$(($COUNTER+1))
done
COUNTER=1

Este código foi adaptado de um script existente dos fóruns do PCLinuxOS. São muito parecidos, com a diferença que a minha versão corre quando chamada com o cron, enquanto que a versão original está continuamente a correr num ciclo while. Eu prefiro a versão do crontab, porque o script é executado apenas quando é necessário e não permanece em execução no sistema, mesmo que não esteja a fazer nada.

Guardem o script numa pasta à vossa escolha (eu gravei na minha home, com o nome wallpaper-rotate.sh). Em seguida, deem permissões de execução ao vosso ficheiro:

chmod u+x wallpaper-rotate.sh

Colocar o script a executar periodicamente

Agora, resta adicionar a entrada no cron, para correr o script de forma periódica:

crontab -e

Abre-se o vosso editor. Se não escolheram nenhum previamente, provavelmente será o vim: carreguem na letra ‘i’ para entrar em modo de edição (um –INSERT– no fim da janela indicará esse facto), e adicionem o seguinte:

*/1 * * * * export DISPLAY=:0 ; /home/andre/wallpaper-rotate.sh

Isto vai chamar o script a cada minuto, para fins de teste. Não se esqueçam de substituir o caminho para o vosso caso. Para gravar, carreguem na sequência de teclas ESC : wq para fechar o editor e gravar as alterações (carregar em Escape, escrever dois pontos e depois escrever wq).

Aguardem um minuto. Se o vosso wallpaper mudou, significa que está tudo a funcionar. Agora, resta definir a periodicidade. Para quem for expert em cron, já sabe o que fazer. Mas para quem não sabe, deixo aqui uns exemplos:

Trocar o wallpaper a cada 30 minutos

*/30 * * * * export DISPLAY=:0 ; /home/andre/wallpaper-rotate.sh

Trocar o wallpaper de hora em hora

* */1 * * * export DISPLAY=:0 ; /home/andre/wallpaper-rotate.sh

Trocar o wallpaper de 4 em 4 horas

* */4 * * * export DISPLAY=:0 ; /home/andre/wallpaper-rotate.sh

Trocar o wallpaper todos os dias, às 16 horas

* 16 * * * export DISPLAY=:0 ; /home/andre/wallpaper-rotate.sh

Substituam a linha inicial pela configuração que vos parecer melhor. Para mais informações sobre o crontab, remoto-vos para o artigo sobre o cron na Wikipédia. Espero que tenham gostado e aproveitado esta dica para personalizar um pouco o vosso sistema com LXDE. A propósito, se quiserem um bom website de wallpapers, vejam o Wallbase: tem milhares de imagens de todos os géneros e resoluções. Até mais! ;)

Gostou deste artigo?

Facebook Twitter Google Plus Delicious

Comentários

Não existem comentários