Eu estava querendo desenvolver algumas extensões do Gnome Shell, uma vez que elas são apenas em javascript, no entanto, eu tenho procurado e existe praticamente zero documentação, em todos os lugares em que olho, as pessoas dizem apenas para usar a documentação básica do Gnome, mas isso NÃO ajuda, eu posso Como não encontrei nenhuma documentação para a importação de extensões ou qualquer tipo de API javascript para o desenvolvimento de extensões, tentei examinar alguns dos tutoriais (a maioria deles para o Gnome 3.0, não o 3.2), mas nada está ajudando.
Alguém sabe se eles estão escrevendo documentação para o desenvolvimento de extensões? Eu realmente adoraria uma boa documentação ...
development
gnome-shell-extension
KoRnKloWn
fonte
fonte
Respostas:
O motivo pelo qual não estou satisfeito com o código de demonstração e os tutoriais é que eles introduzem várias importações aleatórias e nunca explicam o que são ou como usá-las. Estou construindo minha própria resposta à qual outras pessoas podem adicionar, para que as pessoas possam realmente saber quais funções podem chamar, o que podem importar etc.
Existe uma documentação gerada para o Gnome Shell , mas é um pouco incompleta - não consegui encontrar a maioria das 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 combinações de teclas), 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
objeto e, por enquanto, a melhor documentação é a fornecida por Alan Knowles .Outras coisas podem ser importadas por meio das ligações de introspecção GObject, por exemplo:
imports.gi.Clutter
)imports.gi.GLib
)imports.gi.St
)Em geral, você pode procurar na documentação de referência os vários componentes do Gnome para encontrar outras importações.
Uma observação no espelho: existem algumas peculiaridades sobre o uso dessas importações no espelho - perdi muito tempo apenas tentando testar as coisas rapidamente. Por exemplo:
... não funcionará, porque
Clutter
já existe. Mas então:... também não vai funcionar;
MyClutter
é indefinido e não pode ser usado. Você tem que fazer:É claro que, neste caso,
Clutter
já existe, então não é realmente necessário. Mas como não está documentado o que está e o que não está no espaço para nome do espelho, se você tentar importar algo e tiver esses problemas, lembre-se disso.Perguntas restantes:
Mainloop
? Isso é importadomain.js
e parece ter funções relacionadas ao loop principal do GLib. Existe documentação para isso?imports.misc
? Parece ter algumas coisas realmente úteis, comoExtensionUtils
- o que é isso?fonte
A documentação está um pouco atrasada, uma fonte potencial de informação é a reflexão de um encanador de sistema operacional , por exemplo, este post sobre a atualização de extensões do GNOME Shell para funcionar com a versão 3.2
Dependendo das informações que você deseja, você pode tentar a lista de discussão do gnome.
fonte
Este tutorial passo a passo para criar extensões para o gnome 3.4 pode ajudar: https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial
fonte