Trocando o background do gnome randomicamente

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 os
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())
 

This entry was posted in Linux, Python, Ubuntu and tagged , . Bookmark the permalink.

One Response to Trocando o background do gnome randomicamente

  1. Rodrigo Cacilhas [Visitante] says:

    Xiiii, cara, vacilei…

    Esqueci de mandar pra você o código que tenho… =$

    Vou ver se tomo vergonha na cara e envio amanhã.

    []‘s

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>