#148 Variable Styles

• Curated by Thib

Update on what happened across the GNOME project in the week from May 10 to May 17.

Sovereign Tech Fund

Tobias Bernard reports

As part of the GNOME STF (Sovereign Tech Fund) initiative, a number of community members are working on infrastructure related projects.

Here are the highlights for the last week:

Alice landed CSS variables in GTK 🥳

Alice also ported libadwaita to the new CSS variables, added –window-radius, synced AdwComboRow with GTK changes, added a default Adw(Application)Window size, fixed some dialog focus bugs and improved alert dialog styles in addition to various other bug fixes, refactors, and reviews.

Adrian is working on a new installer for GNOME OS. It’s still very early days though, so there isn’t a repo yet.

Felix started investigating how to allow changing passwords of secret-service collections.

Sam worked on the addressing the open questions with the file chooser designs.

Antonio continued work on the Nautilus file chooser, includign some refactoring to minimize code duplication between Nautilus and file chooser and implementing an adaptive file chooser layout following the latest mockups.

Dorota continued working on the global shortcuts portal, creating a prototype portal implementation for testing, finishing the GNOME Settings side of the portal (waiting for maintainer feedback), and addressing feedback to the mutter MR.

Joanie worked on various regression fixes and cleanups in Orca.

Matt worked on text support in the GTK AccessKit implementation. The implementation now supports GtkLabel, GtkInscription, and GtkText-based editable widgets (e.g. GtkEntry), including complex cases like bidirectional text and combining characters (e.g. some emoji). The implementation is now complete enough to support full screen reader access to single-line editable widgets. He also added passive key snooping to Newton’s AT client protocol (involving mutter, newton_consumer, newton_atspi_compat, and Orca), and fixed a number of bugs across the stack to get to the point of being able to record a working demo of the whole Newton stack with the GNOME Podcasts app.

Sam cleaned up the visuals of the floating bar in the file view in Nautilus.

Dhanuka worked on the oo7-daemon Secret Prompt, exposing oo7::crypto::decrypt and oo7::Key::new, and implementing SecretExchange for oo7-daemon.

Andy worked on Online Accounts, including IMAP/SMTP autoconfig, SRV lookups, content-restricted app passwords, WebDAV fixes for file access, and WebDAV fixes for Fastmail/mailbox.org.

Julian continued work on the notification portal implementation, rebased the GNOME Shell notification grouping MR and finished the MR to add new notification properties to GLib.

Jude worked on the GNOME OS migration from ostree to sysupdate, finishing the systemd sysupdate dbus service and implementing the sysupdate plugin in GNOME Software.

Neill worked on security tracking for GNOME OS, opening an MR make use of freedesktop-sdk’s CVE generation utility for reports, add vm and vm-secure reports, and store reports per build branch.

Sophie landed a D-Bus proxy fix for no longer requiring monotonic serials.

Jonas reviewed and merged a GNOME Shell MR to allow for 3+ fingers touchpad gestures, opened an MR to improve the captive portal dialog a bit, updated and landed the GNOME Shell overview spacing improvements, and worked on GNOME Shell docs for new contributors.

Hub worked on fixing the various issues in the USB portal.

Evan worked on fixing remaining issues in TypeScript bindings beta.

We are very happy to announce our partnership with Codethink to make GNOME OS a viable daily driver for QA and development.

  • Finish the migration from ostree to sysupdate
  • Add support for parallel branches
  • Decrease the image size
  • Tooling for development and testing on immutable OSes
  • Security tracking for GNOME OS
  • Allow testing GNOME Merge Requests
  • OpenQA improvements

You can ready about systemd-sysupdate integration at GNOME OS + systemd-sysupdate.

Neill Whillans reports

Working in collaboration with the GNOME Foundation, through the Sovereign Tech Fund (STF), Codethink is currently involved in assisting with the migration from OSTree to systemd-sysupdate for GNOME OS updates.

Our latest blog post describes the benefits of using systemd-sysupdate; the migration work already carried out, and the remaining tasks.

Keep an eye on the Codethink blog where we’ll be sharing progress updates.

GNOME Core Apps and Libraries

Matthias Clasen announces

The 2.42.12 release of gdk-pixbuf is now available.

This release fixes CVE-2022-48622 in the ani loader.

It also includes a change to the default build setup to only build the png, jpeg and tiff loaders by default.

To build other loaders, use the gif and others options:

meson configure -Dgif=true -Dothers=true


Building blocks for modern GNOME apps using GTK4.

Alice (she/her) announces

GTK’s CSS engine now supports custom properties (aka variables) and libadwaita is now making use of them. This means that apps can now use them instead of old named colors. As such, it’s now possible to override them per-widget instead of globally.

The new colors are documented at https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/css-variables.html - for the most part it’s just a change in syntax, not in the available colors - since the old colors still need to work we can’t make more drastic changes until 2.0.

.error, .warning and .success style classes now also change the accent color respectively. For example, this means that a selectable label with .error style class will have a red selection as well, instead of blue.

The .opaque style class for buttons has been deprecated - instead, apps can simply use .suggested-action and override the accent color on it. This will also change the focus ring, and similarly, .destructive-action buttons have red focus rings now.

Apps are encouraged to migrate, but the old colors will keep working until 2.0. For example, @accent_color can be replaced with var(--accent-color), note the dashes in the names instead of underscores. See the docs for more info.

GNOME Circle Apps and Libraries

Liferooter reports

After almost two years Text Pieces 4.0 has ben released and now available on Flathub. The application was rewritten and redesigned from scratch.

New features and improvements:

  • Redesigned interface.
  • Redesigned terminology. Tools are now called actions, arguments are now called parameters.
  • The application became fully asynchronous and now long-running actions do not freeze the interface and also can be cancelled.
  • Added support for typed parameters. Now actions can have boolean or numeric parameters, not only string parameters.
  • Built-in actions are now written in Rust and well-tested, which means that they run faster and less likely to break.

Third Party Projects

Alain says

Planify 4.7.4: New Features and Enhancements for Better Project Management! We are excited to announce the release of version 4.7.4 of Planify, our task and project management application. This update brings significant improvements that will enhance your user experience. Here are the key highlights:

  • Support for Libadwaita 1.5 and Adaptive Dialogs: All dialogs in Planify are now fully responsive, improving usability on various devices.
  • Design, Usability, and Performance Improvements: Enhanced interface and smoother performance for a better user experience.
  • Updated Translations for Hindi and Chinese: More accurate and accessible interface for users speaking these languages.

These are just some of the new features and improvements you’ll find in Planify version 4.7.2. We hope you enjoy using these new tools to make your task and project management even more efficient and productive.

Download the update today and take your productivity to the next level with Planify!

Thank you for being part of the Planify community!


A pure wayland shell for mobile devices.

Guido reports

Phosh 0.39.0 is out:

Phosh now has folder support (to organize your apps) and a night light quick setting. Phoc (with the help of gmobile) now gets the keys that should unblank/unidle the device via hwdb/udev. And the on screen keyboard squeekboard gets new layouts (Portuguese, Slovenian and Turkish (F- and Q-layouts)) as well as improvements to several existing layouts.

There’s more. Check the full details here



Building blocks for modern GNOME apps using GTK4.

kramo reports

Guidelines on using button rows have been added to the HIG. The widget is used to present actions with lists in some cases where we would have traditionally used regular or pill buttons. Developers are encouraged to take a look at the new guidelines and start using the widget where appropriate.

That’s all for this week!

See you next week, and be sure to stop by #thisweek:gnome.org with updates on your own projects!