Novedades para desarrolladores, administradores de sistemas y distribuidores

GNOME 3.12 introduce varias características nuevas y mejoras para quienes trabajan con tecnologías de GNOME.

Nuevos widgets en GTK+

El kit de herramientas GTK+ incluye 3 widgets de interfaz nuevos en 3.12:

  • GtkActionBar: un contenedor nuevo que tiene un hijo centrado como GtkHeaderBar. Está pensado para usarse en la parte inferior de los widgets para presentar acciones para el contenido seleccionado.

  • GtkPopover: un widget nuevo que se puede usar para vistas transitorias, como una alternativa a los menús o los diálogos.

  • GtkFlowBox: un contenedor que muestra a su hijo como una rejilla flotante, que se puede orientar vertical u horizontalmente.

API de notificaciones integrada

GNOME 3.12 incluye una nueva API de notificaciones. Incluida en GIO y llamada GNotification, la API nueva reemplaza a libnotify, por lo que los desarrolladores no necesitan volver a usarla. (GNotification puede recurrir a la interfaz de D-Bus de org.freedesktop.Notifications).

La nueva API se integra limpiamente con GTK+, y funciona junto con GApplication y GAction. Proporciona la mayoría de las características de libnotify, además de algunas nuevas, como la posibilidad de que la notificación se mantenga después de cerrar la aplicación. También permite reiniciar una aplicación cuando el usuario activa una notificación.

Se pueden encontrar más detalles sobre cómo usar la API de GNotification en la página How Do I.

API de lanzamiento de procesos nuevos

En 3.12 se incluye una API nueva y potente para lanzar procesos, llamada GSubprocess. Esta nueva API permite usar la utilidad de línea de comandos gapplication para lanzar aplicaciones. Se puede indicar a las aplicaciones que abran archivos o que ejecuten acciones al ejecutarse. También es posible listar las aplicaciones y acciones disponibles, ya que la utilidad de línea de comandos incluye completado de comandos en bash.

GApplication ahora soporta la gestión por línea de comandos, incluyendo la opción --gapplication-service.

Documentación del desarrollador mejorada

3.12 incluye muchas mejoras en la documentación de referencia de la API de GTK+. Se ha reestructurado la documentación para que tenga un orden más lógico. Las secciones de las sinopsis se han despejado para facilitar su lectura y las capturas de pantalla de los widgets se han actualizado.

También se ha mejorado el marcado de la documentación en muchas bibliotecas. GTK+, GLib, GDK-Pixbuf y Clutter se han convertido para que usen el marcado. Esto da como resultado una apariencia más despejada y un mantenimiento de las fuentes más sencillo.

Por último, se han hecho mejoras en el formato de toda la documentación, lo que la hace más atractiva y fácil de leer.

Wayland está disponible para pruebas

Se ha hecho un gran progreso en la integración de Wayland para la versión 3.12. Esto incluye la creación de una biblioteca nueva, libinput, y nueva funcionalidad para iniciar y gestionar la sesión. Los desarrolladores interesados en Wayland, o quien quiera probar su software en un entorno con Wayland, puede probar la última versión de desarrollo.

Para ejecutar gnome-shell bajo Wayland, ejecute el siguiente comando en una terminal:

gnome-session --session=gnome-wayland

También es posible ejecutar aplicaciones individuales en Wayland especificando el GDK_BACKEND. Ejecute el siguiente comando, sustituyendo nombre-aplicación por el nombre del ejecutable de la aplicación:

GDK_BACKEND=wayland nombre-aplicación

Si una aplicación falla al ejecutarse en Wayland, intentará volver a X11.

Se pueden encontrar más detalles sobre GNOME y Wayland en la página del wiki de GNOME Wayland.

Actualizaciones de Tracker

Tracker el motor y la herramienta de búsqueda y el sistema de almacenamiento de metadatos incluye una larga de mejoras en 3.12:

  • Se ha creado una biblioteca nueva llamadalibmediaart a partir del código de Tracker para gestionar el arte asociado a los archivos multimedia. libmediaart permite guardar en caché el arte almacenado en los archivos multimedia, y proporciona una manera consistente de buscar arte y de reducir el tamaño de la caché para artistas, álbumes y elementos multimedia. (libmediaart no está pensado para generar miniaturas.)

  • Se ha añadido otra biblioteca nueva, libtracker-control para gestionar los mineros de búsqueda.

  • La nueva característica de extracción pasiva permite la extracción de metadatos (ej. orientado a imágenes) escuchando señales o cambios en los recursos. Anteriormente, la inserción de información sobre un recurso se hacía en un paso. Esta característica significa que los datos del archivo (ej. nombre del archivo, tamaño, etc.) se insertan si no hay metadatos específicos.

  • Ahora es posible priorizar los tipos RDF al indexar: esto permite configurar la indexación para situaciones específicas.

  • Ahora se soportan las funciones tracker:normalize() y tracker:unaccent() de SPARQL.

  • El comando nuevo tracker-sparql --tree mostrará la ontología de la base de datos, lo que ayudará a los desarrolladores a tener una imagen clara de la jerarquía de clases.

  • Ahora se soporta la detección de la codificación para metadatos con ICU.

  • El retardo de la señal GraphUpdated, guardada por Tracker, ahora es configurable. Esta señal se usa para proporcionar notificaciones sobre cambios en los recursos de la base de datos (ej. un archivo nuevo añadido). Anteriormente, el retardo era siempre de un segundo.

Extensiones de Grilo con Lua

El entorno de trabajo de descubrimiento de medios Grilo ahora permite añadir fuentes de medios en línea usando el potencial de coincidencia de patrones simples de Lua. Puede encontrar más detalles y ejemplos en el envío del blog de Bastien Nocera sobre este asunto.

Decoraciones del lado del cliente maduras

Las decoraciones del lado del cliente permiten a las ventanas de las aplicaciones hacerse cargo de ciertas funciones desde el gestor de ventanas. Se introdujeron por primera vez durante el ciclo anterior con el widget GtkHeaderBar. Desde entonces, GtkHeaderBar ha madurado considerablemente. Ahora, el widget tiene una altura consistente y se pueden mover las ventanas arrastrando la barra de la cabecera en los dispositivos táctiles. Las barras de cabecera incluyen menús de aplicaciones, así como una gran variedad de controles de ventanas, además el botón estándar de cerrar.

Vinculaciones de Python mejoradas

Las vinculaciones de Python en GNOME se han mejorado en 3.12:

  • Las cadenas de documentación de Python para funciones muestran ahora las firmas de las llamadas precisas, incluyendo argumentos y la información del tipo de retorno.

  • Ahora hay un None implícito predeterminado para argumentos de funciones finales.

  • Ahora todas las funciones de conexión de retorno de llamada aceptan un número variable de argumentos de datos de usuario.

  • Las nuevas demostraciones ahora usan CSS en GTK+ desde Python.

  • Ya no es necesario llamar a GObject.threads_init en programas multi-hilo.

Además, se han hecho muchas mejoras en la memoria y en el rendimiento.

Portabilidad mejorada

Se ha mejorado notablemente la portabilidad entre diferentes sistemas UNIX para la versión 3.12. Se han corregido cerca de 150 errores en FreeBSD y las pruebas de construcción han funcionado con normalidad. El trabajo para otros sistemas operativos está en marcha. Se ha introducido una política de plataformas soportadas para GLib.

Se pueden encontrar más detalles sobre este esfuerzo en la publicación en el blog de Ryan Lortie.

Otras mejoras

Otras mejoras para desarrolladores y administradores de sistemas en 3.12 incluyen:

  • La mayoría de los contenedores de GTK+ ahora dibujan fondos.

  • Los menús basados en modelos ahora pueden esconder elementos basándose en determinadas condiciones.

  • GtkBox ahora soporta un hijo centrado, al igual que GtkHeaderBar.

  • Ahora Clutter soporta las pantallas de alta densidad de DPI, usando la misma configuración compartida por GTK+ y el Demonio de configuración de GNOME.