Nautilus script to convert GDM theme to MDM
Posted: Sun May 27, 2012 10:43 am
I made a little script for Nautilus to convert some GDM themes to MDM (original theme packs can be found here http://browse.deviantart.com/?q=gdm or here http://gnome-look.org/index.php?xcontentmode=150)
Copy the following code, open gedit and paste it, save it to /home/YOUR_PERSONAL_FOLDER/.gnome2/nautilus-scripts/ with the name Convert GDM theme to MDM.
Then open nautilus, navigate to that folder, right-click the script file, select "Properties" and under "Permissions" tick "Allow executing file as program".
Now you can download any GDM theme pack, right-click and select "Convert..." from the scripts sub-menu.
The converted MDM theme pack can be installed via Menu > Administration > Login Window > Local > Style > " Themed with Face Browser" and clicking "Add".
Copy the following code, open gedit and paste it, save it to /home/YOUR_PERSONAL_FOLDER/.gnome2/nautilus-scripts/ with the name Convert GDM theme to MDM.
Then open nautilus, navigate to that folder, right-click the script file, select "Properties" and under "Permissions" tick "Allow executing file as program".
Now you can download any GDM theme pack, right-click and select "Convert..." from the scripts sub-menu.
The converted MDM theme pack can be installed via Menu > Administration > Login Window > Local > Style > " Themed with Face Browser" and clicking "Add".
Code: Select all
#!/usr/bin/env python
# Convert GDM theme to MDM by esteban1uy
import pygtk
import tarfile
import os
import sys
import tempfile
import gtk
pygtk.require('2.0')
if gtk.pygtk_version < (2,3,90):
raise SystemExit
def look_in_directory(directory):
for f in os.listdir(directory):
if os.path.isfile(os.path.join(directory, f)):
if f == "GdmGreeterTheme.desktop":
return os.path.join(directory, f)
if os.path.isdir(os.path.join(directory, f)):
if look_in_directory(os.path.join(directory, f)) != "":
return os.path.join(directory, f)
dialog = gtk.FileChooserDialog("Select theme file",
None,
gtk.FILE_CHOOSER_ACTION_OPEN,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_OPEN, gtk.RESPONSE_OK))
dialog.set_default_response(gtk.RESPONSE_OK)
filter = gtk.FileFilter()
filter.set_name("All files")
filter.add_pattern("*.tar.gz")
dialog.add_filter(filter)
response = dialog.run()
if response == gtk.RESPONSE_OK:
fullpathToTar = dialog.get_filename()
fullpath = os.path.dirname(fullpathToTar)
tar = tarfile.open(fullpathToTar, "r:gz")
destinationPath = tempfile.mkdtemp() + "/"
tar.extractall(destinationPath)
GdmFile = look_in_directory(destinationPath)
if GdmFile != "":
o = open(GdmFile+"/MdmGreeterTheme.desktop","a")
for line in open(GdmFile+"/GdmGreeterTheme.desktop"):
line = line.replace("GdmGreeterTheme","MdmGreeterTheme")
o.write(line)
o.close()
innerfolder = os.path.split(os.path.dirname(GdmFile+"/"))[1]
newtar = tarfile.open(fullpath + "/"+innerfolder+"_for_MDM.tar.gz", "w:gz")
newtar.add(GdmFile+"/",innerfolder+"/")
newtar.close()
elif response == gtk.RESPONSE_CANCEL:
exit()
dialog.destroy()