Configura le estensioni di gnome-shell dalla riga di comando


9

Mi piace eseguire un paio di script per installare automaticamente i pacchetti e fare alcune configurazioni su nuove installazioni del sistema operativo. Uso gnome shell con alcune estensioni e stavo pensando di migliorare i miei script per configurarli.

Di solito configuro le estensioni usando gnome-shell-extension-prefs o dconf-editor e so come modificare altri schemi dalla riga di comando. Esempio:

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

Ma, sebbene sia possibile trovare e modificare le estensioni installate in org.gnome.shell.extensions utilizzando dconf-editor, non riesco ad accedervi utilizzando gsettings poiché non sembrano avere uno schema assegnato:

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

Le uniche estensioni accessibili con gsettings sembrano essere quelle preinstallate.

Quindi, la domanda è: come posso configurare le estensioni installate dalla riga di comando? Esiste un modo per assegnare a gsettings gli schemi compilati ~/.local/share/gnome-shell/extensions/? Forse sto guardando nella direzione sbagliata.

Ambiente: Ubuntu Gnome 14.04 (Gnome Shell 3.10.4)

Grazie in anticipo.

Risposte:


11

Ho trovato la risposta da solo alla fine.

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/

Copia e compila gli schemi in ~/.local/share/gnome-shell/extensionse gsettings sarà in grado di lavorare con loro.


bel po 'di scavo!
Pancho,

Ho appena incontrato lo stesso bug. Deve esserci una soluzione migliore della copia di schemi di estensioni installati localmente nella directory globale. Eventuali aggiornamenti a questo problema?
ingegnere

4

In CentOS 7 - e penserei anche in Ubuntu - ho identificato quello che penso sia un leggero miglioramento della risposta accettata introducendo l'opzione --schemadir come segue:

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

Nei gsettings comando sopra imposta direttamente ${key}a ${value}in ${schema}cui ${schema}non risiede nel default /usr/share/glib-2.0/schemasdirectory. (e non è necessario spostare lo schema nella directory predefinita)

Qualche esempio:

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
confermato lavorando su Ubuntu 18.04, GS 3.28. Ad esempio:gsettings --schemadir ~/.local/share/gnome-shell/extensions/putWindow@clemens.lab21.org/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
eddygeek,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.