summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3/3.22/misc/gnome-tweak-tool/find_gsettings.patch
blob: 3e68c04cb3ab868edd59bc325d5761e35f54adae (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
diff --git a/gtweak/gsettings.py b/gtweak/gsettings.py
index a00fe19..dce74b2 100644
--- a/gtweak/gsettings.py
+++ b/gtweak/gsettings.py
@@ -33,10 +33,15 @@ class GSettingsMissingError(Exception):
 
 class _GSettingsSchema:
     def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options):
-        if not schema_dir:
-            schema_dir = gtweak.GSETTINGS_SCHEMA_DIR
         if not schema_filename:
             schema_filename = schema_name + ".gschema.xml"
+        if not schema_dir:
+            schema_dir = gtweak.GSETTINGS_SCHEMA_DIR
+            for xdg_dir in GLib.get_system_data_dirs():
+                dir = os.path.join(xdg_dir, "glib-2.0", "schemas")
+                if os.path.exists(os.path.join(dir, schema_filename)):
+                    schema_dir = dir
+                    break
 
         schema_path = os.path.join(schema_dir, schema_filename)
         if not os.path.exists(schema_path):