Você pode copiar e compilar seus Gsettings Schemas em um diretório gravável pelo usuário:
$ cp com.companyname.appname ~/schemas/
$ glib-compile-schemas ~/schemas/
O problema é configurar o aplicativo para usar esse diretório específico. Existem duas maneiras de fazer isso:
-
Com a variável de ambiente
GSETTINGS_SCHEMA_DIR
:$ GSETTINGS_SCHEMA_DIR=~/schemas/ ./example.py
-
Ou usando os objetos GSettingsSchemaSource e GSettingSchema:
Se você tiver acesso ao código fonte do seu programa, você pode modificá-lo para carregar esquemas compilados de qualquer diretório. Veja como faria isso em Python, embora você possa fazer isso em qualquer linguagem de programação com a introspecção do GObject:
schema_source = Gio.SettingsSchemaSource.new_from_directory( os.path.expanduser("~/schemas"), Gio.SettingsSchemaSource.get_default(), False, ) schema = schema_source.lookup('com.companyname.appname', False) settings = Gio.Settings.new_full(schema, None, None) settings.set_boolean('mybool', True)