Как я могу установить схему gsettings через расширение оболочки gnome?

Я начал писать свои собственные расширения оболочки Gnome и не могу найти ответ на этот вопрос -> есть ли способ, как установить схему gsettings на машину только с помощью кода расширения (например, не копируя schema.xml в glib-2.0/schemas ] каталог и компиляция по терминалу)?

Если я пытаюсь «сделать» доступ к неустановленной схеме, она начинает падать, и в зеркале появляется сообщение, что такой схемы не существует. Это действительно неудобно для потенциальных пользователей, которые хотят установить эти расширения.

5
задан 16 October 2018 в 22:54

2 ответа

Из всего, что я смог найти (google и gtk docs), кажется, что вы точно указали причину, по которой расширения, установленные через веб-браузер, не могут сохранять настройки через dconf / GSettings - вам нужно установить Схемы dconf на системном уровне. Кажется, что нет способа иметь схемы для каждого пользователя - dconf использует только один скомпилированный двоичный файл.

Утверждение о добавлении поддержки этого в Gnome 3.4 заставляет меня поверить, что они собираются: а) реализовать альтернативный метод для расширений для сохранения настроек, или б) расширить GSettings / dconf таким образом, чтобы пользователи могли установить / скомпилировать схемы в $ HOME.

Если кто-то может подтвердить это (или опровергнуть это, с указателями на документацию), я и многие другие, я уверен, были бы признательны.

В этом посте упоминается ограничение, но не объясняется, почему именно ... http://www.ubuntubuzz.com/2011/12/gnome-shell-extensions-website-has-been.html [ 110]

0
ответ дан 16 October 2018 в 22:54

В настоящее время вы не можете. Это даже не ограничение расширений, а ядро: в библиотеке GSettings нет метода для программной компиляции схем. Вам действительно нужно использовать инструмент командной строки для этого.

А ручное копирование вашей схемы в ~/.local/glib-2.0/schemas и ее компиляция там не работает по умолчанию, поскольку GSettings ищет схемы в каталогах, перечисленных в переменной среды XDG_DATA_DIRS. Если вы добавите ~/.local/glib-2.0/schemas к XDG_DATA_DIRS, это должно сработать.

0
ответ дан 16 October 2018 в 22:54

Другие вопросы по тегам:

Похожие вопросы: