Настроить расширения оболочки gnome из командной строки

9

Мне нравится запускать несколько сценариев для автоматической установки пакетов и выполнения некоторых настроек при новой установке ОС. Я использую оболочку gnome с несколькими расширениями и собирался улучшить свои скрипты для их настройки.

Я обычно настраиваю расширения, используя gnome-shell-extension-prefs или dconf-editor, и я знаю, как редактировать другие схемы из командной строки. Пример:

gsettings set org.gnome.desktop.background picture-options stretched

Но, хотя я могу найти и отредактировать установленные расширения в org.gnome.shell.extensions с помощью dconf-editor, я не могу получить к ним доступ с помощью gsettings, поскольку у них, похоже, нет назначенной схемы:

No such schema 'org.gnome.shell.extensions.extname'

Похоже, что единственные расширения, доступные с помощью gsettings, были предустановлены.

Итак, вопрос в том, как я могу настроить установленные расширения из командной строки? Есть ли способ назначить gsettings скомпилированные схемы в ~/.local/share/gnome-shell/extensions/? Возможно я смотрю не в ту сторону.

Окружение: Ubuntu Gnome 14.04 (Gnome Shell 3.10.4)

Заранее спасибо.

albhilazo
источник

Ответы:

11

Сам нашел ответ в конце.

sudo cp ~/.local/share/gnome-shell/extensions/extname/schemas/org.gnome.shell.extensions.extname.gschema.xml \
    /usr/share/glib-2.0/schemas/ &&
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/

Скопируйте и скомпилируйте схемы, ~/.local/share/gnome-shell/extensionsи gsettings сможет работать с ними.

albhilazo
источник
приятно копать!
Панчо
Просто столкнулся с той же ошибкой. Должно быть лучшее решение, чем копирование схем расширений, установленных локально, в глобальный каталог. Какие-либо обновления к этой проблеме?
инженер
4

В CentOS 7 - а я бы подумал и в Ubuntu - я определил, как мне кажется, небольшое улучшение принятого ответа, введя ключ --schemadir следующим образом:

# gsettings --schemadir ${schemaDir} set ${schema} ${key} "${value}"

В приведенной выше командах gsettings непосредственно устанавливает , ${key}чтобы ${value}в ${schema}котором ${schema}не находится в по умолчанию /usr/share/glib-2.0/schemasкаталога. (и нет необходимости перемещать схему в каталог по умолчанию)

Некоторые примеры:

gsettings --schemadir ~/.local/share/gnome-shell/extensions/putWindow@clemens.lab21.org/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
gsettings --schemadir ~/.local/share/gnome-shell/extensions/unitylike-hotkey@webgyerek.net/schemas/  list-recursively org.gnome.shell.extensions.app-keys
gsettings --schemadir ~/.local/share/gnome-shell/extensions/emoji-selector@maestroschan.fr/schemas/  list-recursively org.gnome.shell.extensions.emoji-selector
Панчо
источник
1
подтвердил работу над Ubuntu 18.04, GS 3.28. Как пример:gsettings --schemadir ~/.local/share/gnome-shell/extensions/putWindow@clemens.lab21.org/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
eddygeek
0

Я написал этот скрипт: скрипт Bash для включения / выключения расширений gnome-shell и многого другого .

Просто запишите это в /usr/binили /usr/local/binи сделайте его исполняемым:

sudo chmod +x /usr/bin/gnome-shell-extension-cl

Проверьте помощь.

Включить расширение:

gnome-shell-extension-cl -e extension-name

Отключить расширение:

gnome-shell-extension-cl -d extension-name
cyberalex4life
источник