J'aime exécuter quelques scripts pour installer automatiquement des packages et effectuer certaines configurations sur de nouvelles installations de système d'exploitation. J'utilise gnome Shell avec quelques extensions et je pensais améliorer mes scripts pour les configurer.
Je configure habituellement les extensions à l'aide de gnome-Shell-extension-prefs ou de dconf-editor et je sais comment modifier d'autres schémas à partir de la ligne de commande. Exemple:
gsettings set org.gnome.desktop.background picture-options stretched
Mais, bien que je puisse trouver et éditer les extensions installées sous org.gnome.Shell.extensions à l'aide de dconf-editor, je ne peux pas y accéder à l'aide de gsettings, car elles ne semblent pas avoir de schéma attribué:
No such schema 'org.gnome.Shell.extensions.extname'
Les seules extensions accessibles avec gsettings semblent être celles préinstallées.
La question est donc, comment puis-je configurer les extensions installées à partir de la ligne de commande? Est-il possible d'assigner à gsettings les schémas compilés dans ~/.local/share/gnome-Shell/extensions/
? Peut-être que je regarde dans la mauvaise direction.
Environnement: Ubuntu Gnome 14.04 (Gnome Shell 3.10.4)
Merci d'avance.
J'ai trouvé la réponse par moi-même à la fin.
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/
Copiez et compilez les schémas de ~/.local/share/gnome-Shell/extensions
et gsettings pourront les utiliser.
Dans CentOS 7 - et je pense aussi dans Ubuntu -, j'ai identifié ce que je pense être une légère amélioration par rapport à la réponse acceptée en introduisant le commutateur --schemadir comme suit:
# gsettings --schemadir ${schemaDir} set ${schema} ${key} "${value}"
Dans la commande ci-dessus, gsettings attribue directement ${key}
à ${value}
dans ${schema}
où ${schema}
ne réside pas dans le répertoire par défaut /usr/share/glib-2.0/schemas
. (et il n'est pas nécessaire de déplacer le schéma dans le répertoire par défaut)
Quelques exemples:
gsettings --schemadir ~/.local/share/gnome-Shell/extensions/[email protected]/schemas/ list-recursively org.gnome.Shell.extensions.org-lab21-putwindow
gsettings --schemadir ~/.local/share/gnome-Shell/extensions/[email protected]/schemas/ list-recursively org.gnome.Shell.extensions.app-keys
gsettings --schemadir ~/.local/share/gnome-Shell/extensions/[email protected]/schemas/ list-recursively org.gnome.Shell.extensions.emoji-selector
J'ai écrit ce script: script Bash pour activer/désactiver les extensions gnome-shell et plus .
Il suffit de le copier dans /usr/bin
ou /usr/local/bin
et de le rendre exécutable:
Sudo chmod +x /usr/bin/gnome-Shell-extension-cl
Consultez l'aide.
Activer l'extension:
gnome-Shell-extension-cl -e extension-name
Désactiver l'extension:
gnome-Shell-extension-cl -d extension-name