Introducción a Extensiones en Gnome Shell

Hace un tiempo que tenía ganas de aprender las posibilidades de Gnome Shell, hoy he empezado a hacerlo. :-)

Gnome shell es la nueva interfaz de usuario en Gnome 3. Me gusta su estilo minimalista y sencillo, soy de los que no les gusta que les interrumpan las notificaciones de escritorio y demás historias, y con Gnome estoy bastante contento en este sentido.

La parte más interesante de Gnome Shell es que su sistema de extensiones y los componentes de escritorio están escritos en Javascript. Su motor javascript (gjs) está basado en el SpiderMonkey de Mozilla.

Existe un muy buen artículo sobre la arquitectura de Gnome Shell y para iniciarse en el desarrollo de extensiones y personalización de componentes de éste.

Mi prueba de concepto está basada completamente en este artículo. Con éste y algunas directrices más es muy sencillo empezar a hacer cosas.

Lo primero que creo hay que saber es que existe una consola JS (LookingGlass) para depurar nuestro código, así como para acceder a los componentes que se están utilizando y para ver los métodos de la API.

La consola consta de las pestañas:

  • Evaluator, que es la consola javascript, podemos acceder a todos los datos actuales del escritorio con la variable global.
  • Windows, que son las ventanas que están actualmente en ejecución con su correspondiente instancia de objeto javascript.
  • Errors, para depurar las aplicaciones/extensiones. Podemos enviar mensajes a esta consola con global.log(string).
  • Memory, memoria utilizada actualmente.
  • Extensions, extensiones, activas o no, que reconoce gnome-shell.

Gnome-Shell tiene un comando para crear nuevas extensiones, que automáticamente te crea un metadata.json(metadatos de la extensión), un extension.js(Código principal de la extensión), y un extension.css (estilo de la extensión).

Para activar/desactivar las extensiones podemos usar gnome-tweak-tool o gsettings.

Para probar los cambios en el código de una extensión/aplicación podemos hacer un Alt-f2 y teclear r o restart para reiniciar gnome-shell.

Para modificar el código propio de Gnome-shell (como el de lookingGlass, o panel, etc), el código se encuentra en /usr/share/gnome-shell/js.

En el siguiente artículo hablaré sobre cómo hacer una extensión en Gnome3.2, aunque podéis encontrar bastante información para comenzar en las referencias de más abajo. No obstante algunos métodos/clases en estos artículos no son iguales en Gnome3.2 y tocará hacer un poco de investigación con lookingGlass y el código de gnome-shell. ;-)

Referencias:

Javier Aguirre

Read more posts by this author.

comments powered by Disqus