What’s New for Developers and System Administrators

GNOME 3.18 includes many new features and improvements for those working with GNOME technologies. Read on for the details!


Builder is the new integrated development environment for GNOME, which aims to make it quick and easy to do all kinds of development work, particularly application development. Thanks to a successful crowdfunding campaign, a huge amount of progress has been made on Builder since last release. While it is still under heavy development, it is already becoming an extremely effective tool.

A new workspace system has been introduced for 3.18, which allows different panels to be added and removed. Current panels include a file browser, build target list, searchable list of symbols for the current file, searchable documentation index, a terminal, and CPU performance graph.

Other improvements in 3.18 include:

  • More accurate code autocompletion.

  • Icons are now shown next to items in the symbol list and autocompletion pop-ups, which indicate what kind of object they are.

  • The pop-up command bar — which makes it possible to quickly fire off commands — has a new appearance, and slides up from the bottom of the window.

  • Builder now has autocompletion for Python, using Jedi.

  • A new shortcuts window provides an overview of available keyboard shortcuts and touchpad gestures. This can be opened with the Ctrl+Shift+? keyboard combination.

  • A new plug-in system has been introduced, which allows plug-ins to be written using Python 3, C or Vala.


The journey to full Wayland readiness continues with GNOME 3.18. Significant progress has been made in this area, and the GNOME experience on Wayland is increasingly mature. Now is a great time to try GNOME with Wayland.

  • High-resolution display support for Wayland applications has landed, including HiDPI cursor support.

  • Copy and paste and drag and drop between windows now works, both between Wayland applications, and between Wayland applications and X11 applications.

  • Pop-up placement (such as context menus and tooltips) has been fixed in most places (prominently, in the Terminal).

  • Several more applications have been fixed to work under Wayland, including the System Monitor.

  • Animated cursors now display without flicker.

  • GTK+’s OpenGL support is now available under Wayland.

  • And there have been many bug fixes in both the compositor and GTK+.

Human Interface Guidelines

GNOME’s Human Interface Guidelines (HIG) have received a major update for 3.18. Structure and navigation have been improved, to make the HIG quicker and easier to use. The guidelines have also been updated and expanded, with new patterns on in-app notifications, info bars, OSD controls and empty placeholders.


There are a number of improvements to GTK+ in 3.18:

  • A new tool, called gtk-builder-tool, allows GtkBuilder UI files to be validated and simplified.

  • 3.18 includes a raft of new typographic features, including colored underlines, letterspacing, font features and translucent font colors. It also includes support for custom font maps and font options. These features can be accessed using Pango markup.

  • Output-only windows are now supported, using the GtkOverlay::pass-through property. This allows input to be directed to the correct window, and is useful when using floating information or decorative overlays.

  • GtkGesture now has built-in support for touchpad gestures (only available on Wayland).

From 3.18, the GTK+ Inspector keyboard shortcut must be explicitly enabled. This can be done using DConf Editor, by checking enable-inspector-keybinding in org ▸ gtk ▸ settings ▸ Debug. Alternatively, you can run the following command:

gsettings set org.gtk.Settings.Debug enable-inspector-keybinding true

Sandboxed Applications

GNOME’s new application sandboxing project aims to enable the creation of secure isolated applications, that can be installed on multiple distributions. Major progress on this technology has been made during the 3.18 cycle. XDG-App (the tool which allows runtimes and applications to be installed) is now an official freedesktop.org project, with releases in several distributions. Additionally, official GNOME runtime and SDK builds are now available at sdk.gnome.org.

The sandboxing aspect of this initiative is still incomplete, and will be the subject of future work. More information can be found on the application sandboxing wiki page.


Changes in GLib for 3.18 include:

  • Threadpools are no longer limited to 10 threads.

  • Information about metered networks is now available in GNetworkMonitor.

  • Portability improvements: GNotification has now been implemented on OS X, and GAppInfo has been partially implemented on Windows (this is backed by the registry).


Clutter has a number of improvements in 3.18:

  • Clutter now prefers OpenGL 3.x contexts, if they are available. Otherwise, it will fall back to the old legacy OpenGL API.

  • Touchpad gesture events are now supported with the libinput backend; this can be used by Clutter-based Wayland compositors, like GNOME Shell.

  • Allows binding GListModel implementations to ClutterActor instances, to automatically create actors from objects stored inside models.

  • Numerous improvements with regards to input on X11, Wayland, and GDK, including touchpad gestures supported on Wayland, correct touchpad detection on X11, and improved cursor tracking.


The new version of WebKitGTK+ includes a range of new APIs and features:

  • The web inspector has been overhauled, with new features.

  • New APIs, such as WebKitWebEditor, make it easier to integrate WebKit into applications, particularly as an editor.

  • WebKitWebsiteDataManager is a new class that lets you manage the increasingly diverse data that websites can store locally.

  • WebKitGTK+ now has API to set the maximum number of web processes per WebKitWebContext. This allows total memory consumption to be reduced.

For more information, a full list of new API is available.

Other Improvements

Other improvements for developers in GNOME 3.18 include:

  • Many libraries now have support for g_autoptr, allowing easier and less error-prone resource acquisition. This includes libgnome-desktop, libsoup, libappstream-glib, libupower-glib, packagekit-glib2, libgit2-glib and gdk-pixbuf. Ryan Lortie’s blog post provides background and examples.

  • gedit now has a minimap, which shows an overview of a file next to the scrollbar.

  • gitg has a new first run experience, which helps to automatically add repositories in your home directory.

  • A new gedit plug-in allows finding text in all files.