Mutter can now be built without fonts rendering support allowing to get rid of Pango/Harfbuzz/Fribidi dependencies. When combined with the previously added options to disable X11/Xwayland, we should soon be able to drop Cairo as a dependency in this build configuration.
This change has 0 impact on GNOME Shell extensions as GNOME Shell cannot be built without fonts rendering support. Compositors built using libmutter, might need to include clutter/clutter-pango.h header where they use any of the fonts rendering APIs.
Introducing Refine, an app to tweak advanced and experimental settings in GNOME. It is an alternative to GNOME Tweaks, and is a pet project I’m currently working to experiment with PyGObject and dconf, while following the data-driven, object-oriented, and composition paradigms.
The entire codebase is made up of widgets that provide all the functionality needed to add an option. For example, instead of adding each option programmatically in Refine, the ultimate goal is to have it all done in the UI file.
For example, if we want to add an option to enable or disable middle click paste, all we need is the following code in the UI file:
That’s it. The RefineSwitchRow widget will do whatever it needs to do to ensure the option is available, grab the setting if it’s available, and display it to the user. Many of these widgets provide extra functionality, such as a Reset button.
Phosh now shows the configured wallpaper / background in the overview (instead of just classic black) and has a button to unfullscreen on app thumbnails. We have done more notification style fixes (e.g. banners now disappear with an animation) and the configuration dialogs now use AdwPreferencesDialog (to be more mobile friendly) and GtkFileDialog to use the portal.