dconf-editor: Respect NIX_GSETTINGS_OVERRIDES_DIR variable
We patch GLib to recognize NIX_GSETTINGS_OVERRIDES_DIR environment variable as a high priority source of settings schemas. This is used by NixOS modules for desktop environments like GNOME to set default values for stuff like background image. Since dconf-editor uses custom GSettingsSchemaSource, it bypassed that patch, leading to the dconf-editor showing different values from what other apps using the GLib’s default source saw. Let’s mirror our GLib patch in dconf-editor to fix that.
This commit is contained in:
parent
710fed5a24
commit
289a54ef8d
|
@ -27,6 +27,12 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "sha256-Vxr0x9rU8Em1PmzXKLea3fCMJ92ra8V7OW0hGGbueeM=";
|
sha256 = "sha256-Vxr0x9rU8Em1PmzXKLea3fCMJ92ra8V7OW0hGGbueeM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Look for compiled schemas in NIX_GSETTINGS_OVERRIDES_DIR
|
||||||
|
# environment variable, to match what we patched GLib to do.
|
||||||
|
./schema-override-variable.patch
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
diff --git a/editor/source-manager.vala b/editor/source-manager.vala
|
||||||
|
index 27b2b17a..87f7ba86 100644
|
||||||
|
--- a/editor/source-manager.vala
|
||||||
|
+++ b/editor/source-manager.vala
|
||||||
|
@@ -121,6 +121,9 @@ private class SourceManager : Object
|
||||||
|
source = try_prepend_dir (source, Path.build_filename (system_data_dirs [i], "glib-2.0", "schemas"));
|
||||||
|
string user_data_dir = GLib.Environment.get_user_data_dir ();
|
||||||
|
source = try_prepend_dir (source, Path.build_filename (user_data_dir, "glib-2.0", "schemas"));
|
||||||
|
+ string? nix_var_schema_dir = GLib.Environment.get_variable ("NIX_GSETTINGS_OVERRIDES_DIR");
|
||||||
|
+ if (nix_var_schema_dir != null)
|
||||||
|
+ source = try_prepend_dir (source, (!) nix_var_schema_dir);
|
||||||
|
string? var_schema_dir = GLib.Environment.get_variable ("GSETTINGS_SCHEMA_DIR");
|
||||||
|
if (var_schema_dir != null)
|
||||||
|
source = try_prepend_dir (source, (!) var_schema_dir);
|
Loading…
Reference in a new issue