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.

albhilazo
fonte

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.

albhilazo
fonte
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/[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
fonte
1
onfirmed trabalhando no Ubuntu 18.04, GS 3.28. Como exemplo:gsettings --schemadir ~/.local/share/gnome-shell/extensions/[email protected]/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
eddygeek 19/09/18
0

Eu escrevi este script: Script Bash para ativar / desativar gnome-shell-extensions e muito mais .

Basta cp-lo no /usr/binou /usr/local/bine torná-lo executável:

sudo chmod +x /usr/bin/gnome-shell-extension-cl

Verifique a ajuda.

Ativar extensão:

gnome-shell-extension-cl -e extension-name

Desativar extensão:

gnome-shell-extension-cl -d extension-name
cyberalex4life
fonte