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.