Configurer les extensions gnome-shell à partir de la ligne de commande


9

J'aime exécuter quelques scripts pour installer automatiquement des packages et faire des configurations sur de nouvelles installations d'OS. J'utilise gnome shell avec quelques extensions et pensais améliorer mes scripts pour les configurer.

Je configure généralement les extensions en utilisant gnome-shell-extension-prefs ou 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 modifier les extensions installées sous org.gnome.shell.extensions en utilisant dconf-editor, je ne peux pas y accéder en utilisant gsettings car elles ne semblent pas avoir de schéma assigné:

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

Les seules extensions accessibles avec gsettings semblent être celles qui étaient pré-installées.

Donc, la question est, comment puis-je configurer les extensions installées à partir de la ligne de commande? Existe-t-il un moyen d'assigner aux gsettings les schémas compilés ~/.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.

Réponses:


11

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 dans ~/.local/share/gnome-shell/extensionset gsettings pourra travailler avec eux.


belle fouille!
Pancho

Je viens de rencontrer le même bug. Il doit y avoir une meilleure solution que de copier des schémas d'extensions installées localement dans le répertoire global. Des mises à jour sur ce problème?
ingénieur

4

Dans CentOS 7 - et je pense aussi dans Ubuntu - j'ai identifié ce que je pense être une légère amélioration de 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 définit directement ${key}sur ${value}in ${schema}${schema}ne réside pas dans le /usr/share/glib-2.0/schemasrépertoire par défaut . (et il n'est pas nécessaire de déplacer le schéma vers le répertoire par défaut)

Quelques exemples:

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
onfirmed travaillant sur Ubuntu 18.04, GS 3.28. Par exemple:gsettings --schemadir ~/.local/share/gnome-shell/extensions/putWindow@clemens.lab21.org/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
eddygeek

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.