Configurar extensiones gnome-shell desde la línea de comando

9

Me gusta ejecutar un par de scripts para instalar paquetes automáticamente y hacer algunas configuraciones en instalaciones nuevas de SO. Utilizo gnome shell con algunas extensiones y estaba pensando en mejorar mis scripts para configurarlos.

Normalmente configuro las extensiones usando gnome-shell-extension-prefs o dconf-editor y sé cómo editar otros esquemas desde la línea de comandos. Ejemplo:

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

Pero, aunque puedo encontrar y editar las extensiones instaladas en org.gnome.shell.extensions usando dconf-editor, no puedo acceder a ellas usando gsettings, ya que no parecen tener un esquema asignado:

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

Las únicas extensiones accesibles con gsettings parecen ser las que vienen preinstaladas.

Entonces, la pregunta es, ¿cómo puedo configurar las extensiones instaladas desde la línea de comandos? ¿Hay alguna forma de asignar a gsettings los esquemas compilados ~/.local/share/gnome-shell/extensions/? Tal vez estoy mirando en la dirección equivocada.

Entorno: Ubuntu Gnome 14.04 (Gnome Shell 3.10.4)

Gracias por adelantado.

Albilazo
fuente

Respuestas:

11

Encontré la respuesta por mí mismo al final.

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/

Copie y compile los esquemas ~/.local/share/gnome-shell/extensionsy gsettings podrá trabajar con ellos.

Albilazo
fuente
un buen poco de excavación!
Pancho
Acabo de encontrarme con el mismo error. Debe haber una mejor solución que copiar esquemas de extensiones que se instalan localmente en el directorio global. ¿Alguna actualización de este problema?
ingeniero
4

En CentOS 7, y también pensaría en Ubuntu, he identificado lo que creo que es una ligera mejora en la respuesta aceptada al introducir el modificador --schemadir de la siguiente manera:

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

En los gsettings comando anterior establece directamente ${key}a ${value}, en ${schema}donde ${schema}no reside en el valor por defecto /usr/share/glib-2.0/schemasdel directorio. (y no hay ningún requisito para mover el esquema al directorio predeterminado)

Algunos ejemplos:

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
fuente
1
confirmado trabajando en Ubuntu 18.04, GS 3.28. Como un ejemplo:gsettings --schemadir ~/.local/share/gnome-shell/extensions/[email protected]/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
eddygeek