Nautilus script to convert GDM theme to MDM

Write tutorials for Linux Mint here
More tutorials on https://github.com/orgs/linuxmint/discu ... /tutorials and (archive) on https://community.linuxmint.com/tutorial
Forum rules
Don't add support questions to tutorials; start your own topic in the appropriate sub-forum instead. Before you post read forum rules
Post Reply
esteban1uy

Nautilus script to convert GDM theme to MDM

Post by esteban1uy »

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".

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()
Last edited by esteban1uy on Sun May 27, 2012 11:59 pm, edited 1 time in total.
esteban1uy

Re: Nautilus script to convert GDM theme to MDM

Post by esteban1uy »

Forgot to mention: in case you're using MATE desktop, the script must be saved to /home/YOUR_PERSONAL_FOLDER/.config/caja/scripts (thanks therobertsonz).
And remember to enable "Show hidden files" in order to be able to see those files and folders with a name starting with "."
Platypus

Re: Nautilus script to convert GDM theme to MDM

Post by Platypus »

Sorry, but I can't get it to work in Mate. I put the script into /.config/caja/scripts and sorted the permissions but still no converstion taking place. I'll go back to doing it by manually.

Regards
Platypus
esteban1uy

Re: Nautilus script to convert GDM theme to MDM

Post by esteban1uy »

Platypus wrote:Sorry, but I can't get it to work in Mate. I put the script into /.config/caja/scripts and sorted the permissions but still no converstion taking place. I'll go back to doing it by manually.

Regards
Platypus
Yeap, if the script doesn't work for you, then you can always do it manually. It's really very simple.

Cheers.
User avatar
twodogs
Level 4
Level 4
Posts: 320
Joined: Sat Jun 09, 2007 9:18 pm

Re: Nautilus script to convert GDM theme to MDM

Post by twodogs »

Thank you very much. Works great on Linux Mint 13 Maya :)
madwoollything

Re: Nautilus script to convert GDM theme to MDM

Post by madwoollything »

Brilliant!
Post Reply

Return to “Tutorials”