Configurar extensões gnome-shell na linha de comando


9

Eu gosto de executar alguns scripts para instalar pacotes automaticamente e fazer algumas configurações em novas instalações do sistema operacional. Eu uso o shell gnome com algumas extensões e estava pensando em melhorar meus scripts para configurá-los.

Geralmente configuro as extensões usando gnome-shell-extension-prefs ou dconf-editor e sei como editar outros esquemas na linha de comando. Exemplo:

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

Mas, embora eu possa encontrar e editar as extensões instaladas em org.gnome.shell.extensions usando o dconf-editor, não posso acessá-las usando gsettings, pois elas não parecem ter um esquema atribuído:

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

As únicas extensões acessíveis com gsettings parecem ser as que vieram pré-instaladas.

Portanto, a questão é: como posso configurar as extensões instaladas na linha de comando? Existe alguma maneira de atribuir a gsettings os esquemas compilados ~/.local/share/gnome-shell/extensions/? Talvez eu esteja olhando na direção errada.

Ambiente: Ubuntu Gnome 14.04 (Gnome Shell 3.10.4)

Desde já, obrigado.

Respostas:


11

Encontrei a resposta sozinho no 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 e compile os esquemas ~/.local/share/gnome-shell/extensionse o gsettings poderá trabalhar com eles.


bom pedaço de escavação!
Pancho

Acabei de encontrar o mesmo bug. Deve haver uma solução melhor do que copiar esquemas de extensões instaladas localmente no diretório global. Alguma atualização para esse problema?
engineer

4

No CentOS 7 - e eu pensaria também no Ubuntu - identifiquei o que considero uma leve melhoria na resposta aceita, introduzindo a opção --schemadir da seguinte maneira:

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

Nos gsettings comando acima define directamente ${key}para ${value}, em ${schema}onde ${schema}não reside no padrão /usr/share/glib-2.0/schemasdiretório. (e não há requisito para mover o esquema para o diretório padrão)

Alguns exemplos:

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 trabalhando no Ubuntu 18.04, GS 3.28. Como exemplo:gsettings --schemadir ~/.local/share/gnome-shell/extensions/putWindow@clemens.lab21.org/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
eddygeek 19/09/18

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.