Neues für Entwickler, Systemverwalter und Distributoren

GNOME 3.12 bringt erstmalig eine Vielzahl neuer Funktionen und Erweiterungen für jene, die mit GNOME-Technologien arbeiten.

Neue GTK+-Kontrollelemente

The GTK+ toolkit has three new interface widgets for 3.12:

  • GtkActionBar: a new container, which has a centered child like GtkHeaderBar. This is intended for use at the bottom of widgets for presenting actions for selected content.

  • GtkPopover: a new widget that can be used for transient views, as an alternative to menus or dialogs.

  • GtkFlowBox: a container that displays its children as a reflowing grid, which can be oriented horizontally or vertically.

Integrated Notifications API

GNOME 3.12 includes a new notifications API. Included in GIO and called GNotification, the new API replaces libnotify, so that developers no longer need to link against it. (GNotification can fall back to the org.freedesktop.Notifications D-Bus interface.)

The new API neatly integrates with GTK+, and works in conjunction with GApplication and GAction. It provides many of libnotify's capabilities plus some new ones, such as the ability for notifications to persist after an application exits. It also makes it possible to restart an application when a notification is activated by the user.

Weitere Informationen zur Verwendung der GNotification-Anwendungsschnittstelle finden Sie auf der How Do I-Seite.

Powerful New Process Launching API

A new, powerful process launching API is included in 3.12, called GSubprocess. The new API allows the gapplication command line utility to be used for launching applications. Applications can be instructed to open files or trigger actions when launched. It is also possible to list the available applications and actions, and the command line utility comes complete with bash completion.

GApplication now also supports command line handling, including the convenient --gapplication-service option.

Verbesserte Entwicklerdokumentation

3.12 includes a raft of improvements to GTK+'s API reference documentation. The documentation has been restructured to have a more logical order. Synopsis sections have been uncluttered for easier reading, and widget screenshots have all been updated.

Documentation markup has also been improved across a number of libraries. GTK+, GLib, GDK-Pixbuf and Clutter have all been converted to use Markdown. This results in a less cluttered appearance and easier maintenance at source.

Finally, formatting improvements have been made for all documentation, which make it more attractive and easier to read.

Wayland bereit zum Testen

A huge amount of progress has been made towards full Wayland integration for 3.12. This includes the creation of a new libinput library and new functionality for login and session management. Developers who are interested in Wayland, or who want to test their software in a Wayland environment, can try the latest development work.

Um gnome-shell unter Wayland auszuführen, starten Sie den folgenden Befehl in einem Terminal:

gnome-session --session=gnome-wayland

Es ist auch möglich, einzelne Anwendungen durch das Angeben des GDK_BACKEND unter Wayland auszuführen. Führen Sie das folgende Kommando aus, und ersetzen Sie application-name mit dem Namen der Anwendung die Sie ausführen möchten:

GDK_BACKEND=wayland application-name

Wenn eine Anwendung nicht auf Wayland läuft, so wird sie versuchen, auf X11 auszuweichen.

Weitere Informationen zu GNOME unter Wayland finden Sie auf der GNOME Wayland Wiki-Seite.

Aktualisierung für Tracker

Tracker the search engine, search tool and metadata storage system, comes with a long list of improvements for 3.12:

  • A new library called libmediaart has been created from Tracker code to handle art associated with multimedia files. libmediaart allows art stored in media files to be cached, and provides a consistent way to look up art and reduce cache sizes for artists, albums and media items. (libmediaart is not intended to generate thumbnails.)

  • Another new library, called libtracker-control, has been added for managing search miners.

  • New passive extraction features allow specified metadata extraction (e.g. image orientation) by listening to signals on resource changes. Previously, inserting information about a resource was done in one step. This feature means that file data (e.g. file name, size, etc) is inserted even if specific metadata isn't.

  • It is now possible to prioritize RDF types when indexing: this enables indexing to be tuned for specific situations.

  • The tracker:normalize() and tracker:unaccent() SPARQL functions are now supported.

  • A new command called tracker-sparql --tree will display the database ontology. This will help developers to get a clear picture of the class hierarchy.

  • Encoding detection is now supported for metadata with ICU.

  • Tracker store's GraphUpdated signal delay is now configurable. This signal is used to provide notifications of resource changes in the database (e.g. new file added). Previously, the delay was always one second.

Grilo-Erweiterungen mit Lua

The Grilo media discovery framework now allows online media sources to be added using Lua's powerful yet simple pattern matching abilities. More details, including examples, can be found in Bastien Nocera's blog post on the subject.

Mature Client-Side Decorations

Client-side decorations allow application windows to take over functions from the window manager. These were first introduced last cycle, with the new GtkHeaderBar widget. Since then, GtkHeaderBar has matured greatly. The widget now has a consistent height, and windows can be moved by dragging the header bar on touch devices. Header bars can also include application menus as well as a variety of window controls in addition to the standard close button.

Verbesserte Python-Bindings

Python-Bindings wurden für GNOME 3.12 verbessert:

  • Python-Dokumentationstexte für Funktionen zeigen jetzt genaue Aufrufssignaturen inklusive der Argument- und Rückgabe-Typeninformationen.

  • There is now an implicit None default for tail-end function arguments.

  • All callback connection functions now accept a variable number of user-data arguments.

  • New demos show how to use CSS in GTK+ from Python.

  • Calling GObject.threads_init is no longer required for multi-threaded programming.

Darüber hinaus haben zahlreiche Verbesserungen im Bereich Speicher und Leistung stattgefunden.

Erweiterte Portabilität

Portabilität für verschiedene UNIX-Betriebssysteme wurde wesentlich in 3.12 verbessert. Über 150 Probleme mit FreeBSD wurden gemeldet und behoben, und es laufen regelmäßig Test-Erstellungen. Die Arbeit für andere Betriebssysteme läuft. Eine neue Richtlinie unterstützter Plattformen wurde in GLib eingeführt.

Weitere Details zu diesen Bemühungen finden Sie in Ryan Lorties blog.

Weitere Verbesserungen

Weitere Verbesserungen für Entwickler und Systemverwalter in 3.12 sind:

  • Die meisten GTK+-Container zeichnen nun Hintergründe.

  • Model-basierte Menüs können nun Einträge anhand spezieller Bedingungen verbergen.

  • GtkBox unterstützt nun genauso wie GtkHeaderBar zentrierte Unterobjekte.

  • Anzeigen mit hoher DPI-Dichte werden nun in Clutter unterstützt. Die selben Einstellungen werden von GTK+ und dem GNOME Einstellungs-Dienst verwendet.