What's new for developers, system administrators and distributors

GNOME 3.16 introduces a number of new features and enhancements for those working with GNOME technologies.

GTK+

With 3.16, built-in OpenGL support has arrived for GTK+. This allows applications that make heavy use of 3D graphics to be written in conjunction with GTK+, using the new GtkGLArea widget. OpenGL support in GTK+ 3.16 provides an effective replacement for the previous GtkGLArea and GtkGLExt libraries.

Other changes in this version of GTK+ include:

  • A display system backend for the Mir display server.

  • GtkPopoverMenu, a new widget for creating menus contained with popovers.

  • Themes can now simultaneously support multiple GTK+ versions, by including version-specific CSS.

  • Improved support for application menus on OS X.

  • Customizable selection behavior in GtkTextView.

GTK+ Inspector

GTK+'s live inspector has had lots of improvements for 3.16. New features include:

  • An interactive JavaScript prompt.

  • An interface for GLib's new memory tracking features.

  • A magnifier for inspecting widgets (this is particularly useful for theme authors).

  • Increased isolation of the inspector through the use of a separate display connection. This means that settings changes only affect the application you are inspecting, and not the inspector itself.

  • A much improved user interface, which uses space more efficiently and is easier to navigate.

GLib

GNOME 3.16 is accompanied by GLib 2.44. This latest GLib release includes a number of new features:

  • GObject instance counting is a new debugging feature which helps to find reference leaks. To use it, set the GOBJECT_DEBUG=instance-count environment variable, and then use g_type_get_instance_count() to get the number of live objects of a given type. GTK+ Inspector has a UI for this.

  • GLib 2.44 introduces GListModel, a GSequence-based object list. This provides an alternative to GtkTreeModel, when data is naturally organized in GObjects. GtkListBox has an API (gtk_list_box_bind_model) to use such models.

  • GLib's network monitor implementation has been significantly improved. This can be accessed using the existing GNetworkMonitor interface, to find out the current network state.

  • The new G_DECLARE_TYPE macro reduces the amount boilerplate required when creating GObjects in C.

  • g_autoptr now provides automatic cleanup for local variables (supported on GCC and Clang).

  • GSimpleIOStream is a new wrapper which makes it easier to construct GIOStreams.

Builder

Builder is a brand new IDE, which is intended to make it easy to create GNOME applications. This initial 3.16 release is an early preview, which shows editing features, such as split view, snippets, auto-indentation and a VIM engine. Builder was backed by a successful crowdfunding campaign early in 2015, and there are big plans for the future. These include project management functionality, global search, version tracking, debugging, Glade integration, and much more.

MultiWriter

MultiWriter is a new application for writing image files to multiple USB devices. It has a range of possible applications, including operating system distribution, QA testing, or promotional use of live USB drives.

Other Improvements in 3.16

  • GDK Pixbuf has improved support for loading and saving various image formats, including PNG, JPEG, TIFF, ICO and BMP.

  • Tracker's utilities have been consolidated into a single tracker command. This replaces the previous collection of utilities, making it easier and more convenient to work with Tracker from the command line. tracker --help can be used to list all available subcommands.

  • libsoup, the HTTP client/server library, now supports WebSockets, both client-side and server-side.

Looking to the Future

GNOME 3.16 includes important developments as a part of long-term GNOME technology initiatives.

  • Work towards full Wayland adoption has continued apace in 3.16. Features like input configuration and pointer barriers are now Wayland compatible, and input handling has made major progress through the development of libinput. With these changes, the port to Wayland is now approaching its final stages.

  • The GNOME community has begun development on an exciting new application deployment framework. Called XDG App, this aims to make it possible for developers to create applications that can run on multiple distributions, and for those applications to be sandboxed for additional security and stability.

  • Finally, the arrival of OpenGL support in GTK+ marks a major achievement on the road to the implementation of the GTK+ Scene Graph, which promises to provide an advanced animation framework for GTK+.