Konfigurieren Sie Gnome-Shell-Erweiterungen über die Befehlszeile

9

Ich möchte ein paar Skripte ausführen, um Pakete automatisch zu installieren und einige Konfigurationen bei Neuinstallationen des Betriebssystems vorzunehmen. Ich verwende die Gnome-Shell mit einigen Erweiterungen und habe darüber nachgedacht, meine Skripte zu verbessern, um sie zu konfigurieren.

Normalerweise konfiguriere ich die Erweiterungen mit gnome-shell-extension-prefs oder dconf-editor und weiß, wie man andere Schemas über die Befehlszeile bearbeitet. Beispiel:

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

Obwohl ich die installierten Erweiterungen unter org.gnome.shell.extensions mit dconf-editor finden und bearbeiten kann, kann ich mit gsettings nicht darauf zugreifen, da ihnen anscheinend kein Schema zugewiesen ist:

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

Die einzigen Erweiterungen, auf die mit gsettings zugegriffen werden kann, scheinen die vorinstallierten zu sein.

Die Frage ist also, wie ich die installierten Erweiterungen über die Befehlszeile konfigurieren kann. Gibt es eine Möglichkeit, gsettings die kompilierten Schemas zuzuweisen ~/.local/share/gnome-shell/extensions/? Vielleicht schaue ich in die falsche Richtung.

Umgebung: Ubuntu Gnome 14.04 (Gnome Shell 3.10.4)

Danke im Voraus.

Albhilazo
quelle

Antworten:

11

Ich habe die Antwort am Ende selbst gefunden.

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/

Kopieren und kompilieren Sie die Schemas in ~/.local/share/gnome-shell/extensionsund gsettings kann mit ihnen arbeiten.

Albhilazo
quelle
schönes bisschen graben!
Pancho
Bin gerade auf den gleichen Fehler gestoßen. Es muss eine bessere Lösung geben als das Kopieren von Schemas von Erweiterungen, die lokal in das globale Verzeichnis installiert werden. Irgendwelche Updates zu diesem Problem?
Ingenieur
4

In CentOS 7 - und ich würde auch in Ubuntu denken - habe ich eine geringfügige Verbesserung der akzeptierten Antwort festgestellt, indem ich den Schalter --schemadir wie folgt eingeführt habe:

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

In dem obigen Befehl gsettings setzt direkt ${key}auf ${value}in ${schema}dem ${schema}in dem Standard befindet sich nicht /usr/share/glib-2.0/schemasVerzeichnis. (und es ist nicht erforderlich, das Schema in das Standardverzeichnis zu verschieben)

Einige Beispiele:

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
Pancho
quelle
1
bestätigte die Arbeit an Ubuntu 18.04, GS 3.28. Als Beispiel:gsettings --schemadir ~/.local/share/gnome-shell/extensions/[email protected]/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
Eddygeek