Я начал писать свои собственные расширения оболочки Gnome и не могу найти ответ на этот вопрос -> есть ли способ, как установить схему gsettings на машину только с помощью кода расширения (например, не копируя schema.xml в glib-2.0/schemas
] каталог и компиляция по терминалу)?
Если я пытаюсь «сделать» доступ к неустановленной схеме, она начинает падать, и в зеркале появляется сообщение, что такой схемы не существует. Это действительно неудобно для потенциальных пользователей, которые хотят установить эти расширения.
Из всего, что я смог найти (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]
В настоящее время вы не можете. Это даже не ограничение расширений, а ядро: в библиотеке GSettings нет метода для программной компиляции схем. Вам действительно нужно использовать инструмент командной строки для этого.
А ручное копирование вашей схемы в ~/.local/glib-2.0/schemas
и ее компиляция там не работает по умолчанию, поскольку GSettings ищет схемы в каталогах, перечисленных в переменной среды XDG_DATA_DIRS
. Если вы добавите ~/.local/glib-2.0/schemas
к XDG_DATA_DIRS
, это должно сработать.