23 lines
943 B
Diff
23 lines
943 B
Diff
|
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):
|