Posted on Leave a comment

#2 Another update on GNOME Settings

For the past months since my last update our project has been thriving with active contributors and positive interactions in our issue tracker and chat channels. As we land changes we often forget to talk about them, so this blog post is a small summary of the visual changes we have landed lately in Settings (in no particular order).

None of these changes are final and are subject to modifications before the stable GNOME 46 release. In addition to the items listed here, we have landed numerous bug fixes, tweaks, and non-visual changes. While the descriptions are brief, you can click on the links for more information and context.

New “System” panel, a Google Summer of Code project

Gotam Gorabh worked on this project during the summer of 2023. This panel groups “Region & Language”, “Date & Time”, “Remote Desktop”, “About” and will contain more system-level settings in the future.

Merged the “Removable Media” and “Default Apps” panels into the “Apps” panel

We have been working towards reducing the number of panels and grouping settings when that makes sense. Removable Media and Default Apps settings are similar to what we expose in the “Apps” panel and this makes related things easier to find.

An About dialog

After some discussions we decided to land the About dialog as it is not visually distracting where it is, and it gives us an opportunity to thank the volunteers involved in developing, translating,  documenting, designing the project.

Performance improvements in the Appearance panel

This panel has had some long lasting issues with its startup speed and lag when resizing. @velsinki has done great work identifying the issues and proposing changes that improve things significantly.

Lots of updated tooltips, mnemonics, HIG compliance UI changes

There are contributors doing drive-by merge-requests where they fix some missing tooltip, add a useful mnemonic, fix some sentence capitalization, etc… every detail matters. I appreciate this!

Multiple dialogs ported from deprecated GtkDialog to newer API

Most Settings panels spawn dialogs for specific settings, and a lot of those historically were using GtkDialog APIs that got deprecated. Various ports to newer APIs have landed lately.

Use of modern libadwaita AdwSpinRow, AdwEntryRow, etc…

The same way our dialogs are getting ported to new API, there are multiple instances of custom widgets that get easily replaced by modern libadwaita widgets. The result is often a much better polished widget and less code to maintain. Win-win.

Add “disable while typing” touchpad option

Updated Wacom illustration style

Improved status pages

Improvements in the “Saved Wifi-Networks” dialog

Notifications: don’t list system services

Other than that, there are other interesting merge-requests in the review queue and individuals working in features and bugfixes for the upcoming 46 release.

Posted on

An update on GNOME Settings

There’s no question that GNOME Settings is important to the overall GNOME experience and I feel flattered to share the responsibility of being one of its maintainers. I have been involved with Settings for almost a decade now but only in the last few months I have  started to wear the general maintainer hat “officially”.

That’s why I am compelled to update our community on the current state of the project. Settings is also co-maintained by Robert Ancell who has been doing great work with reviews and also helping us improve our code readability/quality.

The last general update from Settings you might have heard of was Georges’ Maintainership of GNOME Settings Discourse post. Some of what’s written there still holds true: Settings is one of the largest modules in GNOME, and being this hub connecting the Shell, the settings daemons, network manager, portals, cups, etc… it needs more maintainers. It needs especially maintainers with domain expertise. We have a handful of active contributors doing great frontend/UI work,  but we lack active contributors with expertise in the deep dungeons of networking or color management, for example.

To tackle this issue, one of my goals is to improve the developer experience in GNOME Settings to attract new contributors and to enable drive-by contributors to post changes without struggling much with the process. For that, I kickstarted our Developer documentation. It is in an early stage now and welcoming contributions.

I also have been invested in fixing some of our historical UI consistency problems. A lot has been done in the gnome-44 and gnome-45 cycles to adopt the latest design patterns from the GNOME Human Interface Guidelines with libadwaita and modern GTK. Alice Mikhaylenko and Christopher Davis did an outstanding job with the ports to modern Adwaita navigation widgets. We also gained a new “About” panel that can condense more information that is useful especially for debugging/supporting issues. There’s still work to be done on this front especially with certain views that are currently looking a bit out of place in comparison to modern views.

Screenshot of the new "About" panel.

The new Privacy hub is a new “hub” panel introduced by Marco Melorio in gnome-45 that is our initial step towards reducing the overall number of panels.Screenshot of the new "Privacy" panel.For GNOME 46 we want to introduce a new “System” hub panel, developed by our Google Summer of Code intern Gotam Gorabh, as well as introduce a new “Network & Internet” panel that is being already worked on by contributor Inam Ul Haq. These are two epics that involve reworking some complicated panels such as the Wifi/Network and User Accounts ones. These are panels that should also see a big frontend rework in the gnome-46 cycle and that I plan to work on myself.

Also a big thank you to Allan Day, Jakub Steiner, Tobias Bernard, Sam Hewitt, and other folks doing outstanding design and UX work for Settings.

GNOME 45.0 (stable) will be released in September, shipping plenty of new stuff and bugfixes. It would be extremely helpful if you could test the latest changes and report issues and regressions in our issue tracker. GNOME Settings 45.rc has been released and should be available soon in GNOME OS and unstable/development distro releases such as Fedora Rawhide.

If you want to get involved, feel free to join our Matrix chat channel and ask questions there. I also monitor the “settings” Discourse tag, where you can ask support questions and suggest features.

Posted on

Settings: new Search panel

I haven’t been working on GNOME Settings for quite some time now. Currently, I am focusing mostly on GNOME Boxes, Usage, and Fedora Silverblue. To be fair I still have some love for Settings and I enjoy context-switching once in a while to hack on code bases which I don’t face daily. Unfortunately I can’t do this more often.

A few years ago I pushed a WIP version of the Settings “Search” panel that never got merged because we were in a moment of transition in the project and at the time we thought that introducing Drag & Drop capabilities to GtkListBox would make sense still in gtk3. Fast forward, we are far from even starting to port Settings to gtk4, but people got to use the panels! For this reason, I rebased and iterated a bit over the Search panel in order to make it identical to the mockups. The final result is previewed below and will be available in our next stable release, 3.34.

P.S.: I haven’t blogged much in the last couple of years mostly because I always felt that blog posts required a certain amount of *amazingness*. Now I’m convinced that small pills, highlighting something as small as the work above, have a place in this blog (better than not blogging at all). 🙂