Ubuntu – Can’t use GNOME Shell extensions due to “error parsing schema”

11.10gnomegnome-tweak-tool

I get this error in the gnome-tweak-tool konsole dialog

CRITICAL: Error parsing schema org.gnome.shell (/usr/share/glib-2.0/schemas/org.gnome.shell.gschema.xml)

And then a series of other errors which state 'unknown extension error'.

All of the extensions show, but none of them can be switched on. Any ideas?

Best Answer

Using konsole has nothing to do with this.

Changed the files as mentioned in the article below:

  • /usr/lib/python2.7/dist-packages/gtweak/gshellwrapper.py
  • /usr/lib/python2.7/dist-packages/gtweak/gsettings.py

Now have full access to all shell extensions. A few don't work (alt+tab one for example) but they are all accessible, and there is no longer an error from gnome-tweak-tool.

Steps

Replace lines 48-61 of /usr/lib/python2.7/dist-packages/gtweak/gshellwrapper.py:

class GnomeShell:

EXTENSION_STATE = {
    "ENABLED"       :   1,
    "DISABLED"      :   2,
    "ERROR"         :   3,
    "OUT_OF_DATE"   :   4
}

EXTENSION_TYPE = {
    "SYSTEM"        :   1,
    "PER_USER"      :   2
}

with these:

class GnomeShell:

EXTENSION_STATE = {
    "ENABLED"       :   1,
    "DISABLED"      :   2,
    "ERROR"         :   3,
    "OUT_OF_DATE"   :   4,
    "DISABLED"      :   6
}

EXTENSION_TYPE = {
    "SYSTEM"        :   1,
    "PER_USER"      :   2
}

This should get all extensions working.

Lastly, to clear up the remaining errors, replace lines 44-52 of /usr/lib/python2.7/dist-packages/gtweak/gsettings.py:

                        #summary is compulsory, description is optional
                    summary = key.getElementsByTagName("summary")[0].childNodes[0].data
                    try:
                        description = key.getElementsByTagName("description")[0].childNodes[0].data
                    except:
                        description = ""
                    self._schema[key.getAttribute("name")] = {
                            "summary"       :   summary,
                            "description"   :   description
                    }

with these:

                        #summary is compulsory, description is optional
                    try:
                        summary = key.getElementsByTagName("summary")[0].childNodes[0].data
                        description = key.getElementsByTagName("description")[0].childNodes[0].data
                    except:
                        description = ""
                        summary = "No Summary"
                    self._schema[key.getAttribute("name")] = {
                            "summary"       :   summary,
                            "description"   :   description
                    }

(Ubuntu Forums source)