Novidades para desenvolvedores, administradores de sistemas e distribuidores

GNOME 3.12 incorpora un conxunto de novas funcionalidades e melloras para aqueles que traballan con tecnoloxías de GNOME.

Novos widgets de GTK+

O conxunto de ferramentas GTK+ ten tres novos widgets de interface en 3.12:

  • GtkActionBar: un contenedor novo que ten un fillo centrado como GtkHeaderBar. Está pensado para usarse na parte inferior dos widgets para presentar accións para o contido seleccionado.

  • GtkPopover: un widget novo que se pode usar para vistas transitorias, como unha alternativa aos menús ou os diálogos.

  • GtkFlowBox: un contenedor que mostra ao seu fillo como unha grella flotante, que se pode orientar vertical ou horizontalmente.

API de notificacións integrada

GNOME 3.12 inclúe unha nova API de notificacións. Incluída en GIO e chamada GNotification, a nova API substitúe a libnotify, polo que os desenvolvedores non precisan volver a usala. (GNotification pode recurrer á interface de D-Bus de org.freedesktop.Notifications.)

A nova API intégrase con esmero con GTK+, e funciona en conxunto con GApplication e GAction. Fornece varias das funcionalidades de libnotify ademais de engadir algunhas novas, como a capacidade de facer notificacións persistentes despois de que o aplicativo saia. Tamén fai posíbel reiniciar un aplicativo cando unha notificación é activada polo usuario.

Pode atopar máis detalles sobre cómo usar a API de GNotification na páxina How Do I.

API de inicio de novos procesos potente

Incorporouse en 3.12 unha nova API para inicio de procesos moi potente, chamada GSubprocess. A nova API permítelle á utilidade de liña de ordes gapplication ser usada para iniciar aplicativos. Os aplicativos poden ser instruidos para abrir ficheiros ou disparar accións cando se inicien. Tamén é posíbel mostrar unha lista dos aplicativos e accións dispoñíbeis e a nova utilidade de liña de ordes conta con completado de bash completo.

GApplication agora admite a xestión por liña de ordes, incluíndo a opción --gapplication-service.

Documentación do desenvolvedor mellorada

3.12 inclúe moitas melloras na documentación de referencia da API de GTK+. Reestructurouse a documentación para que teña un orde máis lóxico. As seccións das sinopsis despexáronse para facilitar a súa lectura e as capturas de pantalla dos widgets foron actualizados.

Tamén se mellorou o marcado da documentación en moitas bibliotecas. GTK+, GLib, GDK-Pixbuf e Clutter converteuse para que usen o marcado. Isto da como resultado unha aparencia máis despexada e un mantemento das fuentes máis doado.

Por último, fixéronse melloras no formato de toda a documentación, o que a fai máis atractiva e doada de ler.

Wayland dispoñíbel para probas

Realizouse un incríbel progreso cada a integración completa de Wayland en 3.12. Isto inclúe a creación dunha nova biblioteca libinput e unha nova funcionalidade para inicio e xestión da sesión. Os desenvolvedores interesados en Wayland, ou que queren probar o seu software nun ambiente Wayland poden probar o último traballo de desenvolvemento.

Para executar gnome-shell baixo Wayland, execute a seguinte orde nunha temrinal:

gnome-session --session=gnome-wayland

Tamén é posíbel executar aplicativos individuais en Wayland especificando o GDK_BACKEND. Execute a seguinte orde, substituindo nome-do-aplicativo polo nome do executábel do aplicativo:

GDK_BACKEND=wayland nome-do-aplicativo

Se un aplicativo falla ao executarse en Wayland, interase voltar a X11.

Pode atopar información máis detallada sobre GNOME na páxina da wiki de Wayland de GNOME.

Anovacións en Tracker

Tracker o motor de busca, ferramenta de busca e sistema de almacenamento de metadatos ven cunha longa lista de melloras en 3.12:

  • Creouse desde o código de Tracker unha nova biblioteca chamada libmediaart para xestionar o arte asociado cos ficheiros multimedia. libmediaart permite que o arte almacenado nos ficheiros multimedia se poida gardar nunha caché e fornece unha forma consistente de buscar arte e reducir o tamaño das cachés para os artistas, álbums e elementos multimedia. (libmediaart non está pensada para xerar miniaturas de imaxes.)

  • Engadiuse outra biblioteca nova, libtracker-control para xestionar os mineros de busca.

  • Novas características de extracción pasiva permiten a extracción de metadatos especificada (p.ex. orientación da imaxe) escoitando sinais en cambios de recursos. Anteriormente, a inserción de información sobre un recurso facíase nun paso. Esta característica significa que os datos dun ficheiro (p.ex. nome do ficheiro, tamaño, etc) insírense incluso cando non existen metadatos específicos.

  • Agora é posíbel priorizar os tipos RDF ao indexar: isto permítelle configurar a indexación para situacións específicas.

  • Agora admítense as funciones tracker:normalize() e tracker:unaccent() de SPARQL.

  • A nova orde tracker-sparql --tree mostrará a ontoloxía da base de datos, o que lle axudará aos desenvolvedores a ter unha imaxe clara da xerarquía de clases.

  • Agora admítese a detección de codificación para os metadatos con ICU.

  • O atraso no sinal de almacenamento de Tracker agora pódese configurar na base de datos (p.ex. un novo ficheiro engadido). Anteriormente, o atraso era sempre dun segundo.

Extensións de Grilo con Lua

O marco de traballo de descubrimento de multimedia Griloé permítelle engadir orixes multimedia en liña usando as potentes aínda que doadas capacidades de patrón de coincidencias de Lua. Pode atopar mais información, incluindo exemplos, no artigo do blog de Bastien Nocera sobre o tema.

Decoracións no cliente maduras

As decoracións no cliente permítenlle ás xanelas suplantar funcións do xestor de xanelas. Estas decoracións foron introducidas no último ciclo, co novo widget GtkHeaderBar. Desde aquela, GtkHeaderBar madurou incribelmente. O widget agora ten unha altura consistente, as xanelas poden moverse arrastrando a barra de cabeceira en dispositivos táctiles. As barras de cabeceira tamén poden incluír menús de aplicativos, así como unha variedade de controis de xanela ademais do botón de peche estándar.

Bindings de Python mellorados

Os bindings para Python de GNOME foron mellorados en 3.12:

  • As cadeas de documentación de Python agora mostran as sinaturas de chamadas precisas incluíndo información do tipo dos argumentos e valor de retorno.

  • Agora hai un None implícito predeterminado para argumentos de funcións finais.

  • Todas as funcións de conexión fallback aceptan agora un número variábel de argumentos de datos de usuario.

  • Novas demostración mostran como usar CSS en GTK+ desde Python.

  • Chamar a GObject.threads_init non se precisa máis para a programación multifío.

Ademais, leváronse a cabo melloras na memoria e rendemento.

Portabilidade mellorada

Mellorouse notabelemente a portabilidade entre diferentes sistemas UNIX para a versión 3.12. Corrixíronse perto de 150 errores en FreeBSD e as probas de construción funcionaron con normalidade. O traballo para outros sistemas operativos está en marcha. Introduciuse unha política de plataformas compatíbeis para GLib.

Pode atopar máis informaación sobre estes esforzos nos artigos de Ryan Lortie sobre o asunto.

Outras melloras

Entre as melloras para desenvolvedores e administradores de sistema en 3.12 destacamos:

  • A maioría dos contenedores GTK+ agora poden debuxar fondos.

  • Os menús baseados en modelos agora poden ocultar elementos segundo unhas condicións especificadas.

  • GtkBox admite agora un fillo centrado, da mesma forma que GtkHeader

  • Agora Clutter é compatíbel coas pantallas de alta densidade de DPI, usando a mesma configuración compartida por GTK+ e o Daemon de configuracións de GNOME.