What’s New for Developers and System Administrators

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

GTK+ 3.24

A new stable release of GTK+ is now available. While most effort has been focused on GTK+ 4, some valuable features were recently backported into a GTK+ 3.24 release. These include:

  • The font chooser now allows more advanced control over OpenType font features, including adjusting height and width of variable fonts directly to create custom variants. Not only that, examples are displayed in real time as the features are altered.

  • A new Emoji completion pop-up can be enabled by setting the enable-emoji-completion property on your GtkEntry widgets. For example, typing “:cartwheel:” will suggest the 🤸 character. The current Control-Shift-E shortcut will no longer function when this property is enabled.

  • Three new GtkEventController subclasses are now available, allowing more fine-grained control over input events: GtkEventControllerKey, GtkEventControllerMotion, and GtkEventControllerScroll.

Flatpak

Flatpak is the new cross-distribution, cross-desktop technology for application building and distribution. While it is separate from the GNOME project, Flatpak is central to GNOME’s developer experience plans.

Flatpak has reached significant milestone since the last GNOME release. Flatpak 1.0 is the first version in a new 1.x stable release series. This new stable series incorporates enhancements from the previous 0.11.x and 0.99.x branches. Flatpak 1.0 marks a significant improvement in performance and reliability, and includes a big collection of bug fixes. This 1.0 release also includes a collection of new features, including:

  • Faster installation and updates.

  • Versions of apps can now be marked as end-of-life. App centers and desktops can use this information to warn users and prompt them to update, remove the app or just be aware that support may not be available.

  • Built-in permissions now use an up-front verification model: users are asked to confirm app permissions at install time. If an update requires additional permissions, the user must also confirm at the time of update.

  • A new portal allows apps to create sandboxes and restart themselves. This allows applications to restart themselves after they have been updated (to start using the new version).

  • flatpak-spawn is a new tool for running host commands (if permissions allow) and creating new sandboxes from a sandbox (this uses the portals APIs).

  • Apps can now access the host SSH agent to securely access remote servers or Git repositories.

  • A new application permission can be used to grant access to Bluetooth devices.

See the press release for a complete list of new features. Flathub, Flatpak’s new application distribution service, is growing steadily. It now hosts over 350 applications.

Updated Design Guidelines

GNOME 3.30 contains two major changes to GNOME’s application design guidelines. Both of these changes will come into force in the next GNOME release, version 3.32. Developers therefore have six months in which to make the necessary changes.

First, the recommendations on application menus have been updated. From 3.32, application menus will no longer be shown in the GNOME 3 top bar, and application developers are recommended to remove their application menus in time for GNOME 3.32. Menu items that are currently found in application menus can be moved elsewhere. Guidance on how to do this is included in the 3.30 version of the GNOME Human Interface Guidelines (see the page on application menus for more details).

Second, from GNOME 3.32, GNOME will be introducing a new style and format for application icons. To conform with the new style, applications that use a GNOME-style application icon will need to update their application icon. The 3.30 version of the GNOME Human Interface Guidelines includes updated guidelines for designers and developers, which will come into effect with the 3.32 release. The GNOME design team will be assisting application developers with this process over the next six months.

While these changes will require a small amount of work from application developers, the long-term impact makes it easier for application developers to target the GNOME platform. These changes also address long-standing areas of friction for users and developers.

Other Improvements

Other improvements in GNOME 3.30 include:

  • Builder, the GNOME IDE, includes some important refinements and reliability improvements, including a new auto-completion engine and new interactive tooltips that display contextually relevant information about code.

  • Debugging support has been added to GJS. Activate it by running the GJS console interpreter with the -d or --debugger flag before the name of the JavaScript program on the command line.

  • GJS has been updated to SpiderMonkey 60, bringing significant performance improvements to the GJS runtime.