gnome-settings-daemon schemas doesn't exist on non-GNOME sessions
Currently, GTK depends on schemas installed by gnome-settings-daemon to read settings. Not all contexts in which GTK is running, however, have gnome-settings-daemon installed. Since these schemas are missing, GTK defaults to subpar values. One such critical setting is font management, which should (in theory) have nothing to do with the desktop being used. This has caused bugs: https://github.com/flatpak/flatpak/issues/2861.
The schemas that GTK depends on shouldn't be specific to just GNOME and mutter. Here are the feasible solutions I see for correcting this:
- Make new GTK-specific schemas, independent of session environment
- gnome-settings-daemon would set
org.gtk.settings.font *
, for example, instead oforg.gnome.settings-daemon.plugins.xsettings *
- All other uses of g-s-d schemas should be migrated similarly
- GTK can fall back if the new schemas are missing. For example, if
org.gtk.settings.font antialiasing
is undefined, it could try to readorg.gnome.settings-daemon.plugins.xsettings antialiasing
- gnome-settings-daemon would set
- Migrate gnome-settings-daemon schemas into gnome-desktop-schemas
- Less disruptive than previous change; I see no drop in compatibility
- Since gnome-desktop-schemas is used all throughout GTK and GTK apps, it is going to be installed on all systems that plan to run GTK apps
Please let me know what you think. Thank you!
Edited by Adrian Vovk