user@linuxtrack:~ $ python -c 'print("Soyez les bienvenus !")'

Vous n'êtes pas identifié(e).

#1 09-11-2014 23:45:18

WangXiangzhai
Membre

installer un autre thème de fenêtre sur kali linux openbox.

teste sur kali-linux-1.0.9a-i386-openbox.

pour le teste, j'ai choisi le thème Titanium-compact trouvé ici:

http://box-look.org/content/show.php/Ti … ent=159924

exemple d'installation:

télécharger le fichier 159924-Titanium-compact-1.0.tar.gz dans le dossier /root/Téléchargements

décompresser:

clic droit sur l'archive 159924-Titanium-compact-1.0.tar.gz > extraire ici

copier, coller le dossier Titanium-compact nouvellement obtenu, dans le dossier /usr/share/themes

lancer le gestionnaire de configuration d'openbox.

dans le terminal lancer la commande obconf.

# obconf

ou par le menu:

1415568972.png

dans le gestionnaire de configuration d'openbox > choisir le thème (là pour ce teste, Titanium-compact).

1415569392.png

fermer.

on peut aller un petit peu plus loin avec lxappearance pour personnaliser l'apparence.

menu > Settings > User interface Settings

ou la commande:

# lxappearance

1415572330.png

sélectionner interface > Titanium-compact > appliquer

Dernière modification par WangXiangzhai (10-11-2014 00:46:24)


PC: HP-pavilion a6227.fr | wifi: Awus036H et HWGUSB2-54 | CG: NVIDIA geforce 8400 GS | OS: Debian-8.1.0-i386 Xfce | EN TESTE kali-linux-openbox-rolling-i386.iso (KaliBang), bento-openbox-14.04.3-i386.iso et Viperr8_i686.iso

Hors ligne

#2 10-11-2014 08:22:45

IceF0x
#! Gourou Linux

Re : installer un autre thème de fenêtre sur kali linux openbox.

Tout d'abords merci pour tout ces tuto et test WangXiangzhai

En cas de messages d'erreurs concernant le moteur de rendu si vous installez un thème et que vous lancez une application graphique.

1415600412_capture_d_ecran_-_10112014_-_07_19_51.png

Recherchez les moteur de rendu avec la commande suivante:

apt-cache search gtk2-engines

Ce qui devrait vous répondre ceci

gtk2-engines-nodoka - Nodoka theme engine for GTK+ 2.x
gtk2-engines-aurora - Aurora gtk+-2.0 theme engine
gtk2-engines-cleanice - CleanIce themes for GTK+ 2.x
gtk2-engines-magicchicken - Magic Chicken themes for GTK+ 2.x
gtk2-engines-qtcurve - This is a set of widget styles for Gtk2 based apps
gtk2-engines-wonderland - Wonderland theme for GTK+-2.0
gtk2-engines-xfce - GTK+-2.0 theme engine for Xfce
kde-style-qtcurve - QtCurve widget style for KDE 4
kwin-style-qtcurve - QtCurve window decoration for KWin
qtcurve - Unified window decoration for KDE and GTK+ (meta-package)
gtk2-engines-moblin - gtk2 engines for moblin
gtk2-engines-ubuntulooks - 'ubuntulooks' theme for GTK+ 2.x
gnome-icon-theme-gartoon - Thème d'icônes Gartoon pour GTK+ 2.x
gtk2-engines - Moteur de thèmes pour GTK+ 2.x
gtk2-engines-murrine - Moteur de thème gtk+ 2.0 basé sur cairo
gtk2-engines-oxygen - thème Oxygen pour les applications basées sur GTK+
gtk2-engines-pixbuf - thème basé sur « pixbuf » pour GTK+ 2.x

Il ne reste plus qu'a installer Le moteur de rendu voulu.

Pour vérifier les thèmes installé faite la commande suivante:

dpkg -l | grep gtk2-engines

Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

#3 17-11-2014 15:08:59

manon
#! Crunchikette #!

Re : installer un autre thème de fenêtre sur kali linux openbox.

Je pense que cb-personal-themes devrait fonctionner wink

Hors ligne

#4 17-11-2014 17:45:04

wagmic
Membre

Re : installer un autre thème de fenêtre sur kali linux openbox.

Bonjour y a une solution radicale pour ne plus être embêter c est :

sudo apt-get install gtk2-engines-*

source

Hors ligne

#5 17-11-2014 18:47:18

WangXiangzhai
Membre

Re : installer un autre thème de fenêtre sur kali linux openbox.

@ manon, un petit retour de teste de Cb-personal-thèmes, sur kali-linux-1.0.9a-i386-openbox.

avant:

1416242763.png

après:

1416243213.png

1416242808.png

merci.

Dernière modification par WangXiangzhai (17-11-2014 18:55:40)


PC: HP-pavilion a6227.fr | wifi: Awus036H et HWGUSB2-54 | CG: NVIDIA geforce 8400 GS | OS: Debian-8.1.0-i386 Xfce | EN TESTE kali-linux-openbox-rolling-i386.iso (KaliBang), bento-openbox-14.04.3-i386.iso et Viperr8_i686.iso

Hors ligne

#6 17-11-2014 19:31:50

IceF0x
#! Gourou Linux

Re : installer un autre thème de fenêtre sur kali linux openbox.

manon a écrit :

Je pense que cb-personal-themes devrait fonctionner wink

Je n'ai pas pensé à tester sur kali openbox, mais je trouve dommage qu'il n'y a pas plus de thème rajouté sur le site.


Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

#7 18-11-2014 00:20:14

Yzeew
Membre d'or

Re : installer un autre thème de fenêtre sur kali linux openbox.

Désolé, mais c'est quoi la différence entre avant et après ? À part le la couleur du thème qui à changé :-/


>> Good things come to those who, Wait.. <<

>> sip:yzeew@ekiga.net << and >> #Pouni3 <<

Hors ligne

#8 18-11-2014 19:06:54

WangXiangzhai
Membre

Re : installer un autre thème de fenêtre sur kali linux openbox.

Désolé, mais c'est quoi la différence entre avant et après ? À part le la couleur du thème qui à changé :-/

toutes les actions de Cb-personal-thèmes se trouvent dans le script cb-personal-themes.py

/cb-personal-themes1.2/usr/bin/cb-personal-themes.py

je te fais une copie ici:

1	#!/usr/bin/env python
     2	# -*-coding:utf-8-*
     3	
     4	import pygtk
     5	pygtk.require("2.0")
     6	import os, gtk, shutil, tarfile, re
     7	import threading, time, subprocess, gobject
     8	from os import chdir
     9	from lxml import etree
    10	
    11	gobject.threads_init()
    12	BASE = os.path.expanduser('/')
    13	HOME_FOLDER = os.path.expanduser('~')
    14	EMPLACEMENT = os.path.join(HOME_FOLDER, "themesCB/") 
    15	FULL_CONFIG = ['.bashrc', '.config/openbox/menu.xml']
    16	
    17	theme_config = {".gtkrc-2.0":HOME_FOLDER+'/.gtkrc-2.0',
    18				"compton.conf":HOME_FOLDER+"/.config/compton.conf",
    19				"rc.xml":HOME_FOLDER+"/.config/openbox/rc.xml",
    20				"autostart":HOME_FOLDER+"/.config/openbox/autostart"}
    21	
    22	newFichier, gtkConf = {}, {}
    23	
    24	chdir(HOME_FOLDER)
    25	
    26	if os.path.isdir("themesCB") != True: #si le dossier n'est pas prM-CM-)sent
    27		os.mkdir("themesCB") #on crM-CM-)er le dossier
    28			
    29	chdir(EMPLACEMENT)
    30	
    31	class ObPersonalTheme :
    32		'''class qui gM-CM-(re l'interface graphique'''
    33		
    34		def Quitter(self, widget):
    35			gtk.main_quit()
    36			
    37		def sauvegarde(self, widget):
    38			'''fonction appelM-CM-)e au clique sur le bouton sauvegarde'''
    39			ChoixNomTheme(self, "sauvegarde") 
    40			self.boutonSauvegarde.set_label("Sauvegarde RM-CM-)ussie")
    41		
    42		def exportation_theme(self, widget):
    43			ChoixNomTheme(self, "exportation")
    44			
    45		def importation_theme(self, widget):
    46			SelecteurFichier(self)
    47			
    48		def listeTheme(self, listeDeroulante):
    49			'''fonction qui liste les themes dispo et les rajoute M-CM-  la liste dM-CM-)roulante'''
    50			themes_dispo= [nom for nom  in os.listdir(EMPLACEMENT) if os.path.isdir(nom) == True]
    51			for theme in themes_dispo:
    52				listeDeroulante.append_text(theme)
    53		
    54		def theme_choix(self, listeDeroulante):
    55			'''fonction appelM-CM-)e au choix du theme dans la liste deroulante''' 
    56			choix = listeDeroulante.get_active_text()
    57			if (choix == "ThM-CM-)mes Disponible"):
    58				pass 
    59			else:
    60				chdir('{0}'.format(choix))
    61				fonctions.restauration_theme()#ligne 
    62				fonctions.restauration_openbox()#ligne
    63				chdir(EMPLACEMENT)
    64				
    65		def saveConfig(self, widget):
    66			fonctions.creation_dossier("Ma_config")
    67			chdir("Ma_config")
    68			fonctions.sauvegarde_config() 
    69			fonctions.sauvegarde_theme("sauvegarde")  
    70			self.boutonSaveConfig.set_label("Sauvegarde RM-CM-)ussie")
    71			chdir(EMPLACEMENT) 
    72		
    73		def restaurationConfig(self, widget):
    74			if os.path.isdir("Ma_Config") == True:
    75				chdir("Ma_Config")
    76				fonctions.restauration_config() 
    77				fonctions.restauration_theme() 
    78				chdir(EMPLACEMENT)
    79			else:
    80				self.boutonRestaurationConfig.set_label("Pas de sauvegarde")
    81				
    82		def saveConfTargz(self, widget):
    83			fonctions.creation_dossier("Ma_Config")
    84			nom_theme = "Ma_Config" 
    85			self.savetargz = Exportation_thread(self, nom_theme)
    86			self.savetargz.start() # ligne
    87			
    88		def __init__(self):
    89			
    90			maFenetre = gtk.Window()
    91			maFenetre.set_title("Cb_Personal_ThM-CM-(mes")
    92			maFenetre.connect("destroy", self.Quitter)
    93			maFenetre.set_default_size(300, 250)
    94			
    95			separateur = gtk.HSeparator()
    96			separateur.set_size_request(150, 4)
    97			
    98			cadre1 = gtk.Frame("Sauvegarde")
    99			cadre1.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
   100			
   101			tableau1 = gtk.Table(2, 2)
   102			cadre1.add(tableau1)
   103			
   104			self.boutonSauvegarde = gtk.ToggleButton(label = "Sauvegarder le thM-CM-(me actuel")
   105			self.boutonSauvegarde.connect("clicked" ,self.sauvegarde)
   106			tableau1.attach(self.boutonSauvegarde, 0, 1, 0, 1)
   107			
   108			self.boutonExportation = gtk.ToggleButton(label = "Exporter le thM-CM-(me actuel")
   109			self.boutonExportation.connect("clicked" ,self.exportation_theme)
   110			tableau1.attach(self.boutonExportation,  0, 1, 1, 2)
   111			
   112			cadre2 = gtk.Frame("Importation")
   113			cadre2.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
   114			tableau2 = gtk.Table(2, 2)
   115			cadre2.add(tableau2)
   116			
   117			self.boutonImportation = gtk.ToggleButton(label = "Importer un thM-CM-(me")
   118			self.boutonImportation.connect("clicked" ,self.importation_theme)
   119			tableau2.attach(self.boutonImportation, 0, 1, 0, 1)
   120			
   121			listeDeroulante = gtk.combo_box_new_text()
   122			listeDeroulante.append_text('ThM-CM-)mes Disponible')
   123			listeDeroulante.set_wrap_width(2)
   124			self.listeTheme(listeDeroulante)
   125			listeDeroulante.connect('changed', self.theme_choix)
   126			listeDeroulante.set_active(0)
   127			tableau2.attach(listeDeroulante, 0, 1, 1, 2)
   128		
   129			cadre3 = gtk.Frame("Administration")
   130			cadre3.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
   131			tableau3 = gtk.Table(3, 2)
   132			cadre3.add(tableau3)
   133			
   134			self.boutonSaveConfig = gtk.ToggleButton(label = "Sauvegarder Configuration")
   135			self.boutonSaveConfig.connect("clicked", self.saveConfig)
   136			tableau3.attach(self.boutonSaveConfig, 0, 1, 0, 1)
   137			
   138			self.boutonRestaurationConfig = gtk.ToggleButton(label = "Restaurer Configuration")
   139			self.boutonRestaurationConfig.connect("clicked", self.restaurationConfig)
   140			tableau3.attach(self.boutonRestaurationConfig, 0, 1, 1, 2)
   141			
   142			self.boutonSaveTarGz = gtk.ToggleButton(label = "Sauvegarder en Tar.gz")
   143			self.boutonSaveTarGz.connect("clicked", self.saveConfTargz)
   144			tableau3.attach(self.boutonSaveTarGz, 0, 1, 2, 3) 
   145			
   146			separateur2 = gtk.HSeparator()
   147			separateur2.set_size_request(150, 4)
   148			separateur3 = gtk.HSeparator()
   149			separateur3.set_size_request(150, 4)
   150			separateur4 = gtk.HSeparator()
   151			separateur4.set_size_request(150, 4)
   152			
   153			boutonQuitter = gtk.Button("Quitter", stock = gtk.STOCK_QUIT)
   154			boutonQuitter.connect("clicked", self.Quitter)
   155			
   156			vBox = gtk.VBox()
   157			vBox.pack_start(separateur, False, True, 2)
   158			vBox.pack_start(cadre1, False, False, 4)
   159			vBox.pack_start(separateur2, False, True, 2)
   160			vBox.pack_start(cadre2, False, False, 4)
   161			vBox.pack_start(separateur3, False, True, 2)
   162			vBox.pack_start(cadre3, False, False, 4)
   163			vBox.pack_start(separateur4, False, True, 2)
   164			vBox.pack_end(boutonQuitter, False, False, 2)
   165			maFenetre.add(vBox)
   166			maFenetre.show_all()
   167			
   168	
   169	
   170	class Fonctions:
   171		
   172		def copie_fichiers(self, fichierSource, fichierCopie):
   173			self.source, self.copie = fichierSource, fichierCopie
   174			try:
   175				shutil.copyfile(self.source, self.copie)
   176			except (IOError, shutil.Error):
   177				pass
   178		
   179		def creation_dossier(self, nomDossier):
   180			self.nom = nomDossier
   181			try:
   182				os.mkdir(self.nom)
   183			except OSError:
   184				pass 
   185				
   186		def copie_dossier(self, dossierSource, dossierCopie):
   187			self.source, self.copie = dossierSource, dossierCopie
   188			try:
   189				shutil.copytree(self.source, self.copie)
   190			except OSError:
   191				pass
   192				
   193		def suppression_dossier(self, nomDossier):
   194			self.nom = nomDossier
   195			try:
   196				shutil.rmtree(self.nom)
   197			except (OSError, shutil.Error):
   198				pass
   199				
   200		def sauvegarde_theme(self, typeSauvegarde):
   201			self.lecture_config() # lecture de la configuration
   202			self.option = typeSauvegarde
   203			
   204			for cle, valeur in theme_config.items():
   205				if cle in ['cbconky', 'cbconky1', 'cbconky2', 'cbconky3']:
   206					self.copie_fichiers(valeur, 'cb' + os.path.basename(valeur))
   207					del theme_config[cle]
   208				#end if	
   209				self.copie_fichiers(valeur, os.path.basename(valeur))
   210				
   211			
   212			if self.option == "sauvegarde":
   213				os.remove(os.path.basename(theme_config["emplacementWall"]))
   214				#end if
   215			self.lecture_gtkrc() 
   216			#	
   217			for cle, valeur in gtkConf.items():
   218				if self.option == "exportation":
   219					self.copie_dossier(valeur, os.path.basename(valeur))
   220					
   221				if self.option == "sauvegarde" and "ACYL" in valeur:
   222					self.copie_dossier(valeur, os.path.basename(valeur))
   223		
   224		def restauration_theme(self):
   225			os.system("killall conky")	
   226			self.copie_fichiers("autostart", HOME_FOLDER+"/.config/openbox/autostart")
   227			
   228			if len(theme_config) >= 5:
   229				list_clear = ['bg-saved.cfg', '.conkyrc', 'tint2rc', 'feh', 'cbconky', 'cbconky2', 'cbconky3', 'cbconky4']
   230				for clear in list_clear:
   231					if clear in theme_config:
   232						del theme_config[clear]
   233				
   234			
   235			self.lecture_config()
   236			
   237			
   238			for cle, valeur in theme_config.items():
   239				if "bg-saved.cfg" in cle:
   240					self.copie_fichiers(cle, valeur) 
   241					subprocess.call("nitrogen --restore ", shell=True)
   242					del theme_config[cle]
   243					
   244				if ".conkyrc" in cle:
   245					self.copie_fichiers(cle, valeur)
   246					os.system("conky -q &")
   247					del theme_config[cle]
   248				
   249				if "tint2rc" in cle:
   250					self.copie_fichiers(cle, valeur)
   251					self.tint2 = Tint2Thread(self)
   252					self.tint2.start()
   253					del theme_config[cle]
   254				
   255				if "feh" in cle:
   256					os.system("feh  --bg-scale "+valeur)
   257				if cle in ['cbconky', 'cbconky2', 'cbconky3', 'cbconky4']: 
   258					os.system("conky -c "+valeur+" &")
   259					time.sleep(1)
   260					del theme_config[cle]
   261				
   262				else:      
   263					self.copie_fichiers(cle, valeur)
   264				#end 
   265			#
   266			listFichiers = os.listdir(os.getcwd())
   267			for fichier in listFichiers:
   268				if "ACYL" in fichier:
   269					self.acyl_fonction()
   270					self.copie_dossier(fichier, HOME_FOLDER+"/.icons/"+fichier)
   271				#end
   272			#		
   273			if ('.conkyrc' in listFichiers) and not '.conkyrc' in theme_config:
   274				os.system("conky -q &")
   275				
   276		def restauration_openbox(self):
   277			#os.system("compton --config ~/.config/compton.conf &")
   278			try:
   279				os.system("thunar --daemon --quit")
   280			except OSError:
   281				pass
   282				
   283			subprocess.call("openbox --reconfigure ", shell=True)
   284			time.sleep(1)
   285			subprocess.call("openbox --restart ", shell=True)
   286			
   287		def lecture_config(self):
   288			'''Lecture de la configuration dans l'autostart recupM-CM-)re aussi l'emplacement du wallpaper'''
   289			autostart = open(HOME_FOLDER+"/.config/openbox/autostart", 'r')
   290			i = 0 
   291			for ligne in autostart:
   292				if 'feh --bg-scale' in ligne and (ligne[0] != '#'):
   293					wallPosition = ligne.split('feh --bg-scale ')[1].replace(' ', '').rstrip('\)&\n')
   294					if (wallPosition[0] == '~') or (wallPosition[0] == '.'):
   295						theme_config["emplacementWall"] = HOME_FOLDER+"/"+wallPosition[1:] 
   296					else:
   297						theme_config["emplacementWall"] = wallPosition
   298					theme_config["feh"] = wallPosition
   299	
   300				if 'nitrogen --restore' in ligne and (ligne[0] != '#'):# nitrogen utilisM-CM-)
   301					bgSaved = open(HOME_FOLDER+'/.config/nitrogen/bg-saved.cfg', 'r')
   302					for ligne in bgSaved:
   303						if "file=" in ligne:
   304							theme_config["emplacementWall"] = ligne[5:].rstrip('\n\r')
   305							theme_config["bg-saved.cfg"] = HOME_FOLDER+'/.config/nitrogen/bg-saved.cfg'
   306							break
   307							
   308				if ("conky -c" in ligne) and (ligne[0] != '#'):
   309					i += 1
   310					
   311					conkyPosition = ligne.split('conky -c ')[1].replace(' ', '').rstrip('\)&\n')
   312					if (conkyPosition[0] == '~') or (conkyPosition[0] == '.'):
   313						cheminConky = HOME_FOLDER+"/"+conkyPosition[1:]
   314					else:
   315						cheminConky = conkyPosition
   316					if i == 1:
   317						theme_config["cbconky"] = cheminConky
   318					else:
   319						theme_config["cbconky"+str(i)] = cheminConky
   320						
   321				if ("conky -q" in ligne) and (ligne[0] != '#'):
   322					theme_config[".conkyrc"] = HOME_FOLDER+"/.conkyrc"
   323					
   324				if ("tint2" in ligne) and (ligne[0] != '#'):
   325					theme_config["tint2rc"] = HOME_FOLDER+"/"+".config/tint2/tint2rc"
   326					
   327			#end		
   328			autostart.close()
   329			
   330		def creationAutostart(self):
   331			'''crM-CM-)er le nouveau autostart par rapport au fichiers contenus dans l'archive'''
   332			self.lecture_config()
   333			
   334			wall = os.path.basename(theme_config["emplacementWall"])
   335			emplacementWall = theme_config["emplacementWall"].rstrip(wall)
   336			if emplacementWall == "/usr/share/backgrounds/":
   337				emplacementWall = os.getcwd()+"/"+newFichier["wall"]
   338			
   339			listFichiers = os.listdir(os.getcwd())
   340			for fichier in listFichiers:
   341				if(fichier[-4:].lower() == '.jpg') or (fichier[-4:].lower() == '.png'): 
   342					newFichier["wall"] = fichier 
   343				if ".conkyrc" in fichier:
   344					newFichier[fichier] = True
   345				if "tint2rc" in fichier:
   346					newFichier[fichier] = True 
   347				if "bg-saved.cfg" in fichier:
   348					newFichier[fichier] = True
   349				if "cb" in fichier:
   350					newFichier[fichier] = os.getcwd()+"/"+fichier 
   351				
   352			autostart = open("autostart", 'w')
   353			ancienAutostart = open(HOME_FOLDER+"/.config/openbox/autostart", 'r')
   354			for ligne in ancienAutostart:	
   355				if ('nitrogen --restore' in ligne) and (ligne[0] != '#'):
   356					bgSaved = open('bg-saved.cfg', 'w') 
   357					print >> bgSaved, "[:0.0]"
   358					print >> bgSaved, "file="+emplacementWall+newFichier["wall"]
   359					print >> bgSaved, "mode=5"
   360					print >> bgSaved, "bgcolor=#2d3335"
   361					bgSaved.close()
   362				if ('feh --bg-scale' in ligne) and (ligne[0] != '#'):
   363					ligne = "feh --bg-scale "+emplacementWall+newFichier["wall"]+" & \n"
   364				if ("conky -q" in ligne) and (ligne[0] != '#'):
   365					ligne = "#"+ligne
   366				if ("conky -c " in ligne) and (ligne[0] != '#'):
   367					ligne = "#"+ligne 
   368		
   369				autostart.write(ligne)
   370				#end
   371				
   372			ancienAutostart.close()
   373			
   374			if ".conkyrc" in newFichier.keys():
   375				print >> autostart, "(sleep 3s && conky -q) &"
   376				
   377			for cle, valeur in newFichier.items():#voir regex
   378				if 'cb' in cle:
   379					print >> autostart, "(sleep 3s && conky -c "+valeur+") &"
   380			autostart.close()
   381			
   382		def lecture_gtkrc(self):
   383			gtkrc = open(HOME_FOLDER+"/.gtkrc-2.0", 'r')
   384			for ligne in gtkrc:
   385				if "gtk-theme-name=" in ligne:
   386					nomtheme = ligne.rstrip('\n\r').split("\"")[1]
   387					if os.path.isdir("/usr/share/themes/"+nomtheme) == True:
   388						gtkConf["gtk-theme-name"] = "/usr/share/themes/"+nomtheme
   389					else:
   390						gtkConf["gtk-theme-name"] = HOME_FOLDER+"/.themes/"+nomtheme
   391				if "gtk-icon-theme-name=" in ligne:
   392					nomicons = ligne.rstrip('\n\r').split("\"")[1]
   393					if os.path.isdir("/usr/share/icons/"+nomicons) == True:
   394						gtkConf["icons"] = "/usr/share/icons/"+nomicons
   395					else:
   396						gtkConf["icons"] = HOME_FOLDER+"/.icons/"+nomicons
   397			gtkrc.close()
   398			
   399		def acyl_fonction(self):
   400			themeIcons = os.listdir(HOME_FOLDER+"/.icons")
   401			for theme in themeIcons:
   402				if "ACYL" in theme:
   403					self.suppression_dossier(HOME_FOLDER+"/.icons/"+theme)
   404					break 
   405					
   406		def sauvegarde_config(self):
   407			self.sauvegarde_theme("sauvegarde")
   408			for fichierSource in [os.path.join(HOME_FOLDER, fichier) for fichier in FULL_CONFIG]:
   409				fichierCopie = os.path.basename(fichierSource)
   410				self.copie_fichiers(fichierSource, fichierCopie)
   411					
   412		def restauration_config(self):
   413			for fichierCopie in [os.path.join(HOME_FOLDER, fichier) for fichier in FULL_CONFIG]:
   414				fichierSource = os.path.basename(fichierCopie)
   415				self.copie_fichiers(fichierSource, fichierCopie)
   416			self.restauration_theme()
   417			
   418			
   419	class ChoixNomTheme:
   420		
   421		def __init__(self, widget, choix):
   422			self.fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
   423			self.fenetre.set_size_request(200, 100)
   424			self.fenetre.set_title("Nom du theme")
   425			self.fenetre.connect("delete_event", gtk.main_quit)
   426			self.choix = choix
   427			etiquette = gtk.Label()
   428			etiquette.set_text("Nom de votre thM-CM-(me :")
   429			nom_theme_export = gtk.Entry()
   430			nom_theme_export.set_text("votre theme")
   431			nom_theme_export.connect("activate", self.validation, nom_theme_export)
   432			
   433			bouton_valider = gtk.Button("Valider")
   434			bouton_valider.connect("clicked", self.validation, nom_theme_export)
   435			
   436			vBox = gtk.VBox()
   437			vBox.pack_start(etiquette)
   438			vBox.pack_start(nom_theme_export)
   439			vBox.pack_start(bouton_valider,  False, False, 2)
   440			
   441			self.fenetre.add(vBox)
   442			self.fenetre.show_all()
   443			
   444		def validation(self,fenetre,  nom_theme_export):
   445			nom_theme = nom_theme_export.get_text()
   446			emplacement_theme = os.path.join(EMPLACEMENT, '{0}'.format(nom_theme))
   447			fonctions.creation_dossier('{0}'.format(nom_theme))
   448			chdir(nom_theme)
   449			self.quitter(fenetre, nom_theme_export)
   450			if (self.choix == "exportation"):
   451				self.exportation = Exportation_thread(self, nom_theme)
   452				self.exportation.start()
   453			if (self.choix == "sauvegarde"):
   454				fonctions.sauvegarde_theme("sauvegarde")
   455				chdir(EMPLACEMENT)
   456				
   457		def quitter(self, widget, nom_theme_export):
   458			self.fenetre.destroy()
   459	
   460			
   461	class SelecteurFichier:
   462		
   463		def destroy(self, widget):
   464			self.selectfichier.destroy()
   465		def choix_fichier(self, w):
   466			chdir(EMPLACEMENT)
   467			nomThemeImport = self.selectfichier.get_filename()
   468			self.selectfichier.destroy()
   469			
   470			self.importation = ImportationThread(self, nomThemeImport)
   471			self.importation.start()
   472			
   473		def __init__(self, widget): 
   474			chdir(HOME_FOLDER)
   475			self.selectfichier = gtk.FileSelection("Selection de fichier")
   476			self.selectfichier.connect("destroy", self.destroy)
   477			self.selectfichier.ok_button.connect("clicked", self.choix_fichier)
   478			self.selectfichier.cancel_button.connect("clicked", lambda w: self.selectfichier.destroy())
   479			self.selectfichier.set_filename("manon")
   480			self.selectfichier.show()
   481			
   482			
   483	class Exportation_thread(threading.Thread):
   484		
   485		def __init__ (self, fenetre, nom_theme):
   486			threading.Thread.__init__ (self, target=self)
   487			self.nom_theme = nom_theme
   488			
   489		def run(self):
   490			emplacement_theme = os.path.join(EMPLACEMENT, '{0}'.format(self.nom_theme))
   491			
   492			fenetre2 = gtk.Window()
   493			fenetre2.set_default_size(240, 140)
   494			etiquette = gtk.Label()
   495			etiquette.set_justify(gtk.JUSTIFY_CENTER)
   496			fenetre2.add(etiquette)
   497			fenetre2.show_all()
   498			
   499			etiquette.set_text("\nCopie des fichiers\nde configuration\ndu theme gtk et des icM-CM-4nes\n")
   500			
   501			if (self.nom_theme == "Ma_Config"):
   502				fonctions.sauvegarde_config()
   503				
   504			fonctions.sauvegarde_theme("exportation")
   505			
   506			chdir(HOME_FOLDER)
   507			etiquette.set_text("\nRecherche et copie du theme openbox \n ")
   508			
   509			tree = etree.parse('.config/openbox/rc.xml')
   510			theme_open_box = tree.find('{http://openbox.org/3.4/rc}theme/{http://openbox.org/3.4/rc}name').text
   511			chdir(emplacement_theme)
   512			if os.path.isdir("/usr/share/themes/{0}".format(theme_open_box)):
   513				fonctions.copie_dossier("/usr/share/themes/"+theme_open_box, theme_open_box)
   514			if os.path.isdir(HOME_FOLDER+'/.themes/'+theme_open_box) == True :
   515				fonctions.copie_dossier(HOME_FOLDER+'/.themes/'+theme_open_box, theme_open_box)
   516				
   517			fichierExport = open("exportImport.txt", 'w')
   518			print >> fichierExport, "{0}".format(theme_open_box)
   519			fichierExport.close()
   520			time.sleep(2)
   521			
   522			etiquette.set_text("\nCrM-CM-)ation de l'archive\nle plus long...\n")
   523			chdir(EMPLACEMENT)
   524			tz = tarfile.open('{0}.tar.gz'.format(self.nom_theme), 'w:gz')
   525			tz.add(self.nom_theme)
   526			tz.close()
   527			 
   528			chdir(HOME_FOLDER)
   529			shutil.move(emplacement_theme+'.tar.gz', self.nom_theme+".tar.gz")
   530			chdir(EMPLACEMENT)
   531			etiquette.set_text("Exportation TerminM-CM-)e\nVotre theme se trouve \ndans votre dossier personnel")
   532			time.sleep(4)
   533			fenetre2.destroy()
   534			
   535			
   536	class ImportationThread(threading.Thread):
   537		
   538		def __init__ (self, widget,  nomThemeImport):
   539			threading.Thread.__init__ (self, target=self)
   540			self.nom_theme = nomThemeImport
   541			
   542		def run(self):
   543			fenetre2 = gtk.Window()
   544			fenetre2.set_default_size(240, 140)
   545			etiquette = gtk.Label()
   546			etiquette.set_justify(gtk.JUSTIFY_CENTER)
   547			fenetre2.add(etiquette)
   548			fenetre2.show_all()
   549			
   550			nom_tar_gz =  self.nom_theme.split('.tar.gz')[0]
   551			nom_dossier = os.path.basename(nom_tar_gz)
   552			etiquette.set_text("dM-CM-)compression de l'archive\n le plus long")
   553			tz = tarfile.open('{0}.tar.gz'.format(nom_tar_gz), 'r')
   554			tz.extractall()
   555			tz.close()
   556			
   557			os.system("killall conky")
   558			time.sleep(2)
   559			chdir("{0}{1}/".format(EMPLACEMENT, nom_dossier))
   560			
   561			fonctions.creationAutostart()
   562			
   563			fonctions.copie_fichiers(newFichier["wall"],
   564			        theme_config["emplacementWall"].rstrip(os.path.basename(theme_config["emplacementWall"]))+newFichier["wall"])
   565			
   566			etiquette.set_text("recherche et copie du theme et des icM-CM-4nes")
   567			fonctions.restauration_theme()
   568			
   569			fonctions.lecture_gtkrc()
   570			'''
   571			if "/usr/share/icons/" in gtkConf["icons"]:
   572				gtkConf["icons"] = gtkConf["icons"].replace("/usr/share/icons/", os.path.basename(gtkConf["icons"]))'''
   573				
   574			fonctions.copie_dossier(os.path.basename(gtkConf["icons"]),
   575			        HOME_FOLDER+'/.icons/'+os.path.basename(gtkConf["icons"]))
   576			        
   577			if "ACYL" not in gtkConf["icons"]:
   578				fonctions.suppression_dossier(os.path.basename(gtkConf["icons"]))
   579				
   580			fonctions.copie_dossier(os.path.basename(gtkConf["gtk-theme-name"]),
   581			        HOME_FOLDER+'/.themes/'+os.path.basename(gtkConf["gtk-theme-name"]))
   582			
   583			fonctions.suppression_dossier(os.path.basename(gtkConf["gtk-theme-name"])) 
   584			
   585			exportImport = open("exportImport.txt", 'r').read()
   586			themeBox = exportImport.rstrip('\n\r')
   587			
   588			os.remove("exportImport.txt")
   589			
   590			fonctions.copie_dossier(themeBox, HOME_FOLDER+"/.themes/"+themeBox)
   591			fonctions.suppression_dossier(themeBox)
   592			
   593			tree = etree.parse(HOME_FOLDER + '/.config/openbox/rc.xml')
   594			tree.find('{http://openbox.org/3.4/rc}theme/{http://openbox.org/3.4/rc}name').text = themeBox
   595			tree.write(HOME_FOLDER + '/.config/openbox/rc.xml')
   596			
   597			
   598			etiquette.set_text("Mise en place du theme")
   599			fonctions.restauration_openbox()
   600			chdir(EMPLACEMENT)
   601			
   602			fonctions.copie_fichiers(HOME_FOLDER+"/.config/openbox/rc.xml", "rc.xml")
   603			time.sleep(2)
   604			etiquette.set_text("Importation TerminM-CM-)e")
   605			time.sleep(2)
   606			fenetre2.destroy()
   607	
   608			
   609	class Tint2Thread(threading.Thread):
   610		def __init__ (self, tint2):
   611			threading.Thread.__init__ (self, target=self)
   612		def run(self):
   613			os.system("pkill tint2 && tint2 &")
   614	
   615	
   616	if __name__ == "__main__":
   617		
   618		fonctions = Fonctions()
   619		ObPersonalTheme()
   620		gtk.main()		

tu remarqueras entre autre, qu'il modifie le conky par défaut.

bien sauvegarder l'ensemble de sa conf avant de tester, pour le retour arrière.

ou comme moi, un clone de kali-linux-1.0.9a-i386-openbox dans virtualbox.

+ d'infos, tu demandes à manon j'ai vu > Maintainer: manon

PS:

pas obligé d'installer en .deb pour tester on peut le faire à partir de cb-personal-themes.py.

à noter, que l'installation et la désinstallation en .deb, chez moi fonctionne.

Dernière modification par WangXiangzhai (18-11-2014 19:19:12)


PC: HP-pavilion a6227.fr | wifi: Awus036H et HWGUSB2-54 | CG: NVIDIA geforce 8400 GS | OS: Debian-8.1.0-i386 Xfce | EN TESTE kali-linux-openbox-rolling-i386.iso (KaliBang), bento-openbox-14.04.3-i386.iso et Viperr8_i686.iso

Hors ligne

#9 19-11-2014 13:51:31

manon
#! Crunchikette #!

Re : installer un autre thème de fenêtre sur kali linux openbox.

Yzeew a écrit :

Désolé, mais c'est quoi la différence entre avant et après ? À part le la couleur du thème qui à changé :-/

Il doit y avoir un problème avec les screen wink , regarde plutot ça => Démo changement thème

cb-personal thème modifie  conky , wallpaper , icones, thème GTK et thème openbox.

wangXiangzhai a écrit :

+ d'infos, tu demandes à manon j'ai vu > Maintainer: manon

Voila smile


et aussi sauvegarde ton théme avant car le menu sera modifier

Hors ligne

#10 19-11-2014 23:52:27

Yzeew
Membre d'or

Re : installer un autre thème de fenêtre sur kali linux openbox.

Merci manon, je vois maintenant smile


>> Good things come to those who, Wait.. <<

>> sip:yzeew@ekiga.net << and >> #Pouni3 <<

Hors ligne

Pied de page des forums