Compartilhe suas configurações gconf
Publicado por Emmanuel Ferro 15/10/2008
[ Hits: 6.135 ]
Você perdeu um tempão pra configurar seu Gnome, inseriu miniaplicativos, aplicou transparência, tema e ajustou o compiz. Agora salve suas configurações e compartilhe com os amigos, ou leve com você e aplique na máquina do trabalho ou da escola.
Bom, a idéia é esta, o script é bem simples e pode ser melhorado, quem sabe até virar um miniaplicativo do gnome. Fiquem a vontade em levar a idéia adiante.
P.S. Antes de sair aplicando meus looks, sugiro fazer uma cópia backup da pasta ~/.gconf/
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright 2008 Emmanuel Ferro <emmanuel.ferro@gmail.com>
#
# Este programa é software livre, você pode redistribuí-lo ou modificá-lo
# sob os termos da GNU General Public License, versão 2 ou qualquer versão
# mais recente, conforme publicado pela Free Software Foundation.
#
# Este programa é distribuido na esperança de que possa ser útil, porém
# SEM NENHUMA GARANTIA, sem mesmo a garantia implícita de COMERCIALIZAÇÃO
# ou ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Veja a GNU General Public License
# para mais detalhes.
#
# Você pode ter recebido uma copia da GNU General Public License juntamente
# com este programa, do contrario solicite uma cópia escrevendo para Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
import pygtk
pygtk.require('2.0')
import gtk
import os
version="1.0"
authors=['Emmanuel Ferro - emmanuel.ferro@gmail.com']
appIcon = "/usr/share/icons/gnome/22x22/categories/package_graphics.png"
class GconfLookWindow:
window_title = "Gconf Look " + version
looksDir = "./looks/"
showingabout = False
def callback(self, widget, fileName, data=None):
print "%s was toggled %s" % (data, ("OFF", "ON")[widget.get_active()])
if widget.get_active():
self.lookName = self.looksDir + fileName
def delete_event(self, widget, event, data=None):
print 'Evento para salvar informacoes antes de sair'
return False
def destroy(self, widget, data=None):
gtk.main_quit()
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title(self.window_title)
self.window.set_position(gtk.WIN_POS_CENTER)
self.window.set_icon_from_file(appIcon)
self.window.connect("delete_event", self.delete_event)
self.window.connect("destroy", self.destroy)
# Preparando a Toolbar
self.container = gtk.VBox(False, 1)
self.toolbar = gtk.Toolbar()
self.toolbar.set_show_arrow(False)
self.btn_new_look = self.newToolButton(gtk.STOCK_NEW)
self.btn_del_look = self.newToolButton(gtk.STOCK_DELETE)
self.btn_apply_look = self.newToolButton(gtk.STOCK_APPLY)
self.btn_about_look = self.newToolButton(gtk.STOCK_ABOUT)
self.btn_exit = self.newToolButton(gtk.STOCK_QUIT, True)
self.toolbar.show()
self.container.pack_start(self.toolbar, expand=False)
# Verificar se existe a pasta looks
self.existeLooks()
# Preparando a lista de looks
self.montaListaLook()
#Signals do Toolbar
self.btn_exit.connect("clicked", self.destroy)
self.btn_apply_look.connect("clicked", self.applyLook)
self.btn_new_look.connect("clicked", self.newLook)
self.btn_del_look.connect("clicked", self.deleteLook)
self.btn_about_look.connect("clicked", self.showabout)
# Exibindo a janela
self.window.add(self.container)
self.container.show()
self.window.show()
def deleteabout(self, widget, event=None):
self.showingabout=False
self.aboutwindow.destroy()
def showabout(self, widget):
if self.showingabout:
self.showingabout = False
self.aboutwindow.destroy()
return
self.showingabout=True
self.aboutwindow = gtk.AboutDialog()
self.aboutwindow.connect("delete_event", self.deleteabout)
self.aboutwindow.connect("response", self.deleteabout)
self.aboutwindow.set_name("Gconf Look")
self.aboutwindow.set_version(version)
# self.aboutwindow.set_website("http://www.vivaolinux.com.br")
self.aboutwindow.set_comments("Alterna diferentes looks do gconf")
self.aboutwindow.set_copyright(','.join(authors))
logoImg = gtk.Image()
logoImg.set_from_file(appIcon)
self.aboutwindow.set_logo(logoImg.get_pixbuf())
self.aboutwindow.show()
# Exibe a lista de looks existentes no formato radio buttons
def montaListaLook(self):
self.containerListOfLooks = gtk.VBox(False, 1)
self.containerListOfLooks.show()
listaLabel = gtk.Label("Looks disponíveis:")
listaLabel.show()
self.containerListOfLooks.pack_start(listaLabel, expand=False)
isFirst = True
for fname in os.listdir(self.looksDir):
if isFirst:
button = gtk.RadioButton(None, fname.replace(".tar.gz",""))
self.lookName = self.looksDir + fname
isFirst = False
else:
button = gtk.RadioButton(button, fname.replace(".tar.gz",""))
button.connect("toggled", self.callback, fname, fname)
button.show()
self.containerListOfLooks.pack_start(button, True, True, 0)
self.containerListOfLooks.show()
self.container.pack_start(self.containerListOfLooks, expand=False)
# Recarrega a lista de looks
def recarregaListaLook(self):
self.container.remove(self.containerListOfLooks)
self.montaListaLook()
# Salva o look atual
def saveLook(self, pathName, fileName):
workDir = os.getcwd()
os.chdir(pathName)
comando = "tar -cvzf " + fileName + ".tar.gz .gconf/"
os.system(comando)
os.chdir(workDir)
# Deleta o look "checado" da lista
def deleteLook(self, widget):
if os.path.isfile(self.lookName):
dialog = gtk.MessageDialog(
parent=None,
flags=0,
type=gtk.MESSAGE_QUESTION,
buttons=gtk.BUTTONS_YES_NO,
message_format="Confirma a remoção do look " +
self.lookName.replace(self.looksDir,"")
.replace(".tar.gz",""))
response = dialog.run ()
dialog.destroy ()
if response == gtk.RESPONSE_YES:
os.remove(self.lookName)
self.recarregaListaLook()
return True
else:
return False
# Aplica o look "checado" em substituição ao atual
def applyLook(self, widget):
if os.path.isfile(self.lookName):
comando = "tar -xvzf " + self.lookName + " -C ~"
os.system(comando)
# Solicitar encerramento da sessão
dialog = gtk.MessageDialog(
parent=None,
flags=0,
type=gtk.MESSAGE_QUESTION,
buttons=gtk.BUTTONS_YES_NO,
message_format="Look aplicado com sucesso!\n" +
"As mudaças só serão visíveis na próxima sessão.\n\n" +
"Deseja finalizar a sessão agora?")
response = dialog.run ()
dialog.destroy ()
if response == gtk.RESPONSE_YES:
os.system("/usr/bin/gnome-session-save --kill --silent")
return True
else:
return False
# Cria um novo look a partir das configurações atuais
def newLook(self, widget):
janelaSalvar = gtk.FileChooserDialog("Salvar como:", self.window,
gtk.FILE_CHOOSER_ACTION_SAVE,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_SAVE, gtk.RESPONSE_OK))
janelaSalvar.set_current_folder(self.looksDir)
response = janelaSalvar.run()
if response == gtk.RESPONSE_OK:
pathName = janelaSalvar.get_current_folder()
fileName = janelaSalvar.get_filename()
self.saveLook(pathName, fileName)
self.recarregaListaLook()
janelaSalvar.destroy()
# Inserir um botão na toolbar
def newToolButton(self, stockid, start_group=False):
btn = gtk.ToolButton(stockid)
if start_group:
item = gtk.ToolItem()
sep = gtk.VSeparator()
sep.show()
item.add(sep)
item.show()
self.toolbar.insert(item, -1)
self.toolbar.insert(btn, -1)
btn.show()
return btn
# Verifica se existe o diretório de looks
def existeLooks(self):
if not os.path.exists(self.looksDir):
# Cria o diretório caso não exista
os.mkdir(self.looksDir)
print('Diretório criado: ', self.looksDir)
def main(self):
gtk.main()
if __name__=="__main__":
janela = GconfLookWindow()
janela.main()
ISOsync_pt-BR.py - Um Baixador Automático de ISOs de Sabayon, escrito em Python
Veja a versão das principais distrubuições.
Mighty Are's Tool of Easily Promote Combats
Just Do It - XML Generic Editor
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático
Como impedir exclusão de arquivos por outros usuários no (Linux)
Formas seguras de instalar Debian Sid (10)
Alguém executou um rm e quase mata a Pixar! (6)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (12)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









