Мне нравится запускать несколько сценариев для автоматической установки пакетов и выполнения некоторых настроек при новой установке ОС. Я использую оболочку 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)
Заранее благодарю.
Найденный ответом один в конце.
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 будут в состоянии работать с ними.
Я записал этот сценарий: сценарий Bash для позволения/запрещения расширений оболочки гнома и больше .
Просто CP это в /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
В 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