Como posso instalar o esquema gsettings através de uma extensão do shell do gnome?

5

Eu comecei a escrever meu próprio Gnome Shell Extensions e não consigo encontrar nenhuma resposta para essa pergunta - > Existe alguma maneira, como instalar o esquema de gsettings na máquina apenas através do código de extensão (por exemplo, não copiar schema.xml no diretório glib-2.0/schemas e compilar pelo terminal)?

Se eu tentar "fazer" o acesso a um esquema não instalado, ele começa a travar e o vidro continua dizendo que esse esquema não existe. É realmente desconfortável para usuários em potencial que desejam instalar essas extensões.

    
por Otaj 04.01.2012 / 07:19

2 respostas

2

De tudo que consegui encontrar (documentos do google e gtk), parece que você encontrou exatamente o motivo pelo qual extensões instaladas via navegador da Web não podem armazenar configurações via dconf / GSettings - você precisa instalar Esquemas dconf no nível do sistema. Não parece haver uma maneira de ter esquemas por usuário - o dconf usa apenas o único arquivo binário compilado.

A declaração sobre adicionar suporte para isso no Gnome 3.4 leva-me a acreditar que eles vão a) implementar um método alternativo para extensões para armazenar configurações, ou b) estender o GSettings / dconf de uma maneira que permita aos usuários instalar / compilar esquemas sob $ HOME.

Se alguém puder confirmar isso (ou refutar, com indicações para a documentação), eu e muitos outros, tenho certeza, agradeceria.

Este post menciona a limitação, mas não explica exatamente por que ... html "> link

    
por Jim H 07.01.2012 / 02:46
1

Atualmente, você não pode. Isso não é nem mesmo uma limitação de extensões, mas sim uma limitação: não há nenhum método na biblioteca GSettings para compilar esquemas programaticamente. Você realmente precisa usar a ferramenta de linha de comando para isso.

E copiar manualmente seu esquema para ~/.local/glib-2.0/schemas e compilá-lo não funciona por padrão porque o GSettings procura por esquemas nos diretórios listados na variável de ambiente XDG_DATA_DIRS . Se você adicionar ~/.local/glib-2.0/schemas a XDG_DATA_DIRS , isso deve funcionar.

    
por Marcelo Hashimoto 10.01.2012 / 17:42