Documentação para o desenvolvimento da extensão shell do gnome?

22

Eu tenho querido desenvolver algumas extensões do Gnome Shell já que elas são apenas em javascript, no entanto eu tenho procurado e praticamente não há documentação, em todos os lugares eu vejo pessoas dizendo para usar a documentação básica do Gnome, mas isso NÃO ajuda , Eu não consigo encontrar qualquer documentação para as importações de extensões, ou qualquer tipo de javascript api para o desenvolvimento da extensão, tentei olhar através de alguns dos tutoriais (a maioria dos quais são para o Gnome 3.0, não 3.2), mas nada está ajudando.

Alguém sabe se eles estão em andamento escrevendo a documentação para o desenvolvimento da extensão? Eu realmente adoraria alguma boa documentação ...

    
por KoRnKloWn 11.12.2011 / 04:50

3 respostas

6

A razão pela qual eu não estou feliz com o código demo e tutoriais é que eles introduzem um monte de importações aleatórias e nunca explicam o que são ou como usá-las. Estou construindo minha própria resposta que outras pessoas podem adicionar, para que as pessoas possam realmente saber quais funções podem chamar, o que podem importar, etc.

Existe documentação gerada para o Gnome Shell , mas é um tanto incompleta - não consegui encontrar a maior parte do coisas que vi em vários tutoriais, exemplos e extensões publicadas.

A única documentação realmente confiável é a própria fonte do Gnome Shell. Simplesmente não há outra maneira atualizada ou completa de saber o que está disponível.

Estes dois pontos de partida são particularmente bons:

A fonte C mostra que existe um objeto importante chamado global que não precisa ser importado, e fornece acesso a coisas como o gerenciador de janelas (incluindo atalhos de teclado), as informações da sessão, as telas disponíveis e outras coisas. Aqui está a fonte:

Eu queria saber como usar o global.display object , e por enquanto a melhor documentação é fornecida por Alan Knowles .

Outras coisas podem ser importadas através das ligações de introspecção do GObject, por exemplo:

Em geral, você pode consultar a documentação de referência dos vários componentes do Gnome para encontrar outras importações.

Uma nota sobre o espelho: No entanto, há algumas peculiaridades sobre o uso dessas importações no visor - perdi muito tempo tentando testar as coisas na hora. Por exemplo:

const Clutter = imports.gi.Clutter;

... não funcionará, porque Clutter já existe. Mas então:

const MyClutter = imports.gi.Clutter;

... também não funcionará; MyClutter é indefinido e não pode ser usado. Você tem que fazer:

MyClutter = imports.gi.Clutter;

Claro que, neste caso, Clutter já existe, então não é realmente necessário. Mas como não está documentado o que é e o que não está no namespace do espelho, se você tentar importar algo e tiver esses problemas, lembre-se.

Perguntas restantes:

  • O que é Mainloop ? Isso é importado em main.js e parece ter funções relacionadas a o loop principal do GLib. Existe documentação para isso?
  • O que é imports.misc ? Parece ter algumas coisas realmente úteis, como ExtensionUtils - o que é isso?
  • Como você usa o DBus? E a introspecção?
por detly 09.02.2013 / 03:14
4

A documentação está um pouco atrasada, uma fonte potencial de informação é Reflexões de um canalizador do sistema operacional , por exemplo este post em atualização das extensões do GNOME Shell para trabalhar com a versão 3.2

Dependendo das informações que você deseja, você pode tentar a lista de discussão do gnome.

    
por Panther 11.12.2011 / 05:23
3

Este tutorial passo a passo para criar extensões para o gnome 3.4 pode ajudar: link

    
por agustibr 08.02.2013 / 05:07