segunda-feira, 28 de maio de 2007

Mudando automaticamente os papéis de parede no gnome

Uma configuração de área de trabalho que existe no KDE mas não no GNOME é a seguinte: podemos definir uma coleção de papéis de parede e configurar o desktop para mudar automaticamente de tanto em tanto tempo, dentro das imagens da coleção.

Através deste script, podemos replicar este comportamento no GNOME. Fazemos uso do comando gconftool-2. Entre as (muitas) coisas que ele é capaz de fazer, está mudar o papel de parede por linha de comando.

Definimos um diretório para guardar as várias imagens de papel de parede. No exemplo abaixo, usamos o subdiretório "wallpapers" embaixo do home de cada usuário. O script embutido na linguagem AWK recupera um item aleatório desse diretório, e o resultado é passado para o gconftool-2.

O script toma o cuidado de "matar" quaisquer instâncias anteriores dele próprio que estejam ativas, e pode ser desativado sendo chamado com o parâmetro "-k".

O código é mostrado abaixo:

#!/bin/sh
#Versão modificada
# wpcycle.sh - gira papeis de parede no GNOME 2.x
#

WPCINTERVAL=60
WPDIR=~/Imagens/wallpapers

THISPROG=`basename $0`
THISUID=`id -u`

if [ 0$THISUID -eq 0 ]
then
exit 0
fi
kill `/sbin/pidof -x -o $$ $THISPROG` >/dev/null 2>&1

if [ "$1" = "-k" ]
then
kill `ps ax | grep "sleep $WPCINTERVAL$" | awk '{print $1}'` >/dev/null 2>&1
exit 0
fi

cd $WPDIR

while [ 1 ]
do
WPFILE=`find $WPDIR -name \*.jpg -print| awk '
BEGIN {
nfiles = 0;
}

{
wplist[nfiles++] = $0;
}

END {
srand();
print wplist[int(nfiles * rand())];
}'`

gconftool-2 --type string -s /desktop/gnome/background/picture_filename "$WPFILE"
LANG=en sleep $WPCINTERVAL
done


Para ativá-lo por padrão:
  • Mude as permissões para permitir execução:
chmod a+x wpcycle.sh
  • Copie o script para um diretório com acesso para todos os usuários (/usr/local/bin por exemplo)
  • No menu do GNOME, entre em Preferências -> Sessões (ou Preferências -> Mais Preferências -> Sessões).
  • Na aba "Programas Iniciais", adicione uma chamada para o wpcycle.sh.
  • Ajuste o intervalo de troca a seu bel prazer.
  • Eu uso 60 segundos. Os números "quebrados" são para facilitar a busca por outros processos que estejam rodando. Por exemplo, para 10 minutos você poderia usar 600.093.
  • Popule o diretório ~/wallpapers com os seus wallpapers preferidos.
  • Dê logout e login no GNOME e divirta-se!
Eu fiz algumas alterações na versão original.

O script original é encontrado em: http://listas.cipsga.org.br/pipermail/linux-sbo/2005-February/000511.html Por: Juan Carlos Castro y Castro

Um comentário:

Anônimo disse...

Perfeito, o do juan travava o sistema todo e o seu rodo que eh uma beleza ")