He estado queriendo desarrollar algunas extensiones de Gnome Shell ya que solo están en javascript, sin embargo, he estado buscando y prácticamente no hay documentación, en todas partes, la gente simplemente dice que use la documentación básica de Gnome, pero esto NO ayuda, puedo No encontré ninguna documentación para las importaciones de extensiones, ni ningún tipo de API de JavaScript para el desarrollo de extensiones. Intenté revisar algunos de los tutoriales (la mayoría de los cuales son para Gnome 3.0, no 3.2), pero nada ayuda.
¿Alguien sabe si están en proceso de escribir documentación para el desarrollo de la extensión? Realmente me encantaría una buena documentación ...
development
gnome-shell-extension
KoRnKloWn
fuente
fuente
Respuestas:
La razón por la que no estoy contento con el código de demostración y los tutoriales es que introducen un montón de importaciones aleatorias y nunca explican qué son o cómo usarlos. Estoy construyendo mi propia respuesta a la que otros pueden agregar, para que las personas puedan saber qué funciones pueden llamar, qué pueden importar, etc.
Hay documentación generada para Gnome Shell , pero está algo incompleta: no pude encontrar la mayoría de las cosas que vi en varios tutoriales, ejemplos y extensiones publicadas.
La única documentación realmente confiable es la fuente de Gnome Shell. Simplemente no hay ninguna otra forma actualizada o completa de saber qué hay disponible.
Estos dos puntos de partida son particularmente buenos:
La fuente en C muestra que hay un objeto importante llamado
global
que no necesita importarse, y proporciona acceso a cosas como el administrador de ventanas (incluidas las combinaciones de teclas), la información de la sesión, las pantallas disponibles y otras cosas similares. Aquí está la fuente:Quería saber cómo usar el
global.display
objeto , y por ahora la mejor documentación es la proporcionada por Alan Knowles .Se pueden importar otras cosas a través de los enlaces de introspección GObject, por ejemplo:
imports.gi.Clutter
)imports.gi.GLib
)imports.gi.St
)En general, puede consultar la documentación de referencia de los distintos componentes de Gnome para encontrar otras importaciones.
Una nota sobre el espejo: Sin embargo, hay algunas peculiaridades sobre el uso de estas importaciones en el espejo: perdí mucho tiempo tratando de probar las cosas sobre la marcha. Por ejemplo:
... no funcionará, porque
Clutter
ya existe. Pero entonces:... tampoco funcionará;
MyClutter
no está definido y no se puede usar. Tu tienes que hacer:Por supuesto, en este caso
Clutter
ya existe, por lo que no es realmente necesario. Pero dado que no está documentado lo que está y no está en el espacio de nombres del espejo, si intenta importar algo y tiene estos problemas, tenga en cuenta.Preguntas restantes:
Mainloop
? Esto se importamain.js
y parece tener funciones relacionadas con el bucle principal GLib. ¿Hay documentación para esto?imports.misc
? Parece tener algunas cosas realmente útiles allí, comoExtensionUtils
: ¿qué es eso?fuente
La documentación está un poco retrasada, una fuente potencial de información son las reflexiones de un plomero del sistema operativo , por ejemplo, esta publicación sobre la actualización de las extensiones de GNOME Shell para que funcione con la versión 3.2
Dependiendo de la información que desee, puede probar la lista de correo de gnome.
fuente
Este tutorial paso a paso para crear extensiones para gnome 3.4 puede ayudar: https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial
fuente