web-dev-qa-db-ja.com

「スキーマの解析エラー」が原因でGNOME Shell拡張機能を使用できない

Gnome-Tweak-tool konsoleダイアログでこのエラーが発生します

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

そして、「未知の拡張エラー」を示す他の一連のエラー。

すべての拡張機能が表示されますが、どれもオンにできません。何か案は?

2
James LeBlanc

Konsoleの使用は、これとは何の関係もありません。

以下の記事に記載されているようにファイルを変更しました。

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

これで、すべてのシェル拡張機能にフルアクセスできます。いくつかは機能しませんが(たとえばAlt + Tab 1)、それらはすべてアクセス可能であり、gnome-Tweak-toolからのエラーはなくなりました。

手順

/usr/lib/python2.7/dist-packages/gtweak/gshellwrapper.pyの48〜61行目を置き換えます。

class GnomeShell:

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

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

これ等と一緒に:

class GnomeShell:

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

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

これにより、すべての拡張機能が機能します。

最後に、残りのエラーをクリアするには、/usr/lib/python2.7/dist-packages/gtweak/gsettings.pyの44〜52行目を置き換えます。

                        #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
                    }

これ等と一緒に:

                        #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
                    }

buntu Forums source

1
James LeBlanc