Compartilhe suas configurações gconf
Publicado por Emmanuel Ferro 15/10/2008
[ Hits: 5.893 ]
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()
Mighty Are's Tool of Easily Promote Combats
Jogo da Velha com IA (Inteligencia Artificial)
Sugestão aleatória de filmes e séries para assistir por streaming
Nenhum comentário foi encontrado.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Pedagogia no brasil não passa de alfabetização por m4sturbação mental ... (2)
compilação samba 4.22 rock linux 9.5 (3)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (7)