Uma das coisas de que eu gostava quando usava windows era o webshots. Ele é um programa que baixa papéis de parede e os troca randomicamente, em uma periodicidade definida pelo usuário.
Resolvi enfrentar o problema no Linux usando Python. Como o Desktop que eu uso é o gnome, fui procurar onde ficava essa configuração.
O Miguel de Icaza, criador do gnome, é fã da Microsoft. Tanto, que criou no gnome um sistema parecido com o registro do windows, o http://www.gnome.org/projects/gconf/gconf, porém usando XML. Descobri que a entrada do papel de parede ficava num XML, no ~/.gconf/desktop/gnome/background . Fiz uma tentativa de versão inicial com o ElementTree (que será parte oficial do python 2.5, porém mesmo salvando o arquivo, as mudanças não aconteciam). Pra piorar, descobri hoje que aqui no trabalho a configuração do gconf não fica numa árvore de diretórios, mas, sim, em um único XML grandão.
Ok, ok, pesquisando aqui e ali, vi que é possível manipular o gconf diretamente no python (sem me procupar se o XML está em uma árvore ou em um único arquivo).
Após uns testes, o código (é possível de ser melhorado, e muito; ainda vou aprender threads
poderia ter também a funcionalidade de baixar papéis de parede dalgum lugar, se eu soubesse de onde baixar. Por enquanto, basta colocar no crontab) :
import gconf
import random
def randomImage():
dirs = (‘/usr/share/pixmaps/backgrounds/cosmos/’,
‘/usr/share/pixmaps/backgrounds/gnome/branded/’,
‘/usr/share/pixmaps/backgrounds/gnome/nature/’,
‘/usr/share/pixmaps/backgrounds/gnome/translucent/’ )
dir = dirs[random.randrange(0,len(dirs))]
lista = os.listdir(dir)
rand = random.randrange(0,len(lista))
rand = "".join([dir,lista[rand]])
return rand
entry = gconf.client_get_default()
entry.set_string(‘/desktop/gnome/background/picture_filename’,randomImage())
Xiiii, cara, vacilei…
Esqueci de mandar pra você o código que tenho… =$
Vou ver se tomo vergonha na cara e envio amanhã.
[]‘s