#18 Delicious toasts
Update on what happened across the GNOME project in the week from November 05 to November 12.
Core Apps and Libraries
Libadwaita
Building blocks for modern GNOME apps using GTK4.
Maximiliano has implemented toasts in libadwaita - an easier to use and sleeker replacement for the old in-app notifications pattern that never got a specialized widget
Files
Providing a simple and integrated way of managing your files and browsing your file system.
antoniof says
Joshua Lee has ported the file conflict dialog to GtkBuilder templates. This is part of the effort to get the Files application ready for GTK 4, but also gets us one step closer to the proposed redesign of this dialog.
Peter Eisenmann and Allan Day have enhanced the Rename popover with a new design. Now the popover can grow wider for long file names.
GNOME Shell
Core system user interface for things like launching apps, switching windows, system search, and more.
Ivan Molodetskikh says
The work-in-progress new GNOME Shell screenshot UI had a bit of polish done this week.
The corner handles for resizing are back with a cleaner look thanks to guidance from Tobias Bernard.
The screenshot area is now preserved between screenshots, making it easy to capture the same window in different configurations (e.g. light vs. dark style). Left-click-dragging anywhere outside of the screenshot area now lets you draw a new area, which is indicated with a crosshair cursor. To accommodate this, the starting screenshot area has been made smaller. It will also appear correctly on the primary monitor, even if it’s not the leftmost one.
The screenshot cursor will no longer sometimes change when opening the UI, and it will no longer appear blurry.
Finally, when there are no open windows to screenshot, the window selection button will be inactive.
Settings
Configure various aspects of your GNOME desktop.
Georges Stavracas (feaneron) reports
A few weeks ago, I started porting GNOME Settings - and its dependencies - to GTK4. I’m porting each panel individually. This week I managed to port 3 more panels: the Color, Display, and Background panels. With that, 27 out of 32 panels are ported.
GNOME Builder
IDE for writing GNOME-based software.
gwagner says
GNOME Builder contains now Gtk4 templates for Rust, Python and Vala thanks to Marco, Tim and Yotam.
Georg Vienna landed fantastic features for our language servers this week:
- a typescript language server plugin using tsls (testing appreciated. Especially container usage is being worked on so we are happy about any user reports)
- code actions and workspace edit. Code Actions allow language specific refactorings or specific fixes to the codebase computed by the language server and the later allows projectwide renaming of symbols. (Details and Previews can be found in the merge request https://gitlab.gnome.org/GNOME/gnome-builder/-/merge_requests/461) Rust, Python and the TypeScript Plugin already use this facility.
Thanks to Tomi GNOME Builder offers now a clang-format powered “format on save” option in order to properly format your code with a dedicated .clang-format file. Also the build output pane can now be configured to clean before a build. So you can easily inspect only the build informations from one build.
The mono gtk3 template got a bit modernized and aligned to our other templates.
Tracker
A filesystem indexer, metadata storage system and search tool.
Sam Thursfield reports
In Tracker, Carlos Garnacho fixed a query cancellation issue which will improve performance when searching in Nautilus. Thanks to everyone who helped triage https://gitlab.gnome.org/GNOME/tracker/-/issues/264
Circle Apps and Libraries
Health
Collect, store and visualise metrics about yourself.
Cogitri says
Health 0.93.3 has been released today with some bug fixes. This release of Health makes it adaptive to smaller screens (again), has nicer colours for its calories overview (thanks to Color Palette’s nice colour picker) and features some updated and new translations
gtk-rs
Safe bindings to the Rust language for fundamental libraries from the GNOME stack.
Julian Hofer says
Aaron Erhardt and I added installation instructions for Linux, macOS and Windows to the gtk4-rs book.
If you are a macOS or Windows developer and have suggestions on how to make the instructions more idiomatic feel free to open an issue.
Especially for macOS it would already help to simply follow the instructions and check if everything works as expected.
Third Party Projects
Georges Stavracas (feaneron) says
Thanks to the Endless Orange Week, this week I could work on various portal-related tasks. Here are a few highlights:
- Added introspection to
libportal
, and introducedlibportal-gtk3
,libportal-gtk4
, andlibportal-qt5
, with toolkit-specific functions.- I’m extending the “Device” portal to allow opening PipeWire connections that filter all but the allowed devices. This allows sandboxed applications to not expose the
xdg-run/pipewire-0
socket unfiltered, which gives access to many devices like cameras and microphones without the corresponding permissions.- Revisited my implementation of screencast session restore. This introduces a mechanism for applications to restore previous screencast sessions without querying the user again. I also implemented support for it in GNOME portals, and a proof of concept in OBS Studio.
Telegrand
A Telegram client optimized for the GNOME desktop.
Marco Melorio reports
Another week of good progress has passed in Telegrand! Marcus Behrendt continued his streak of contributions: he made the unread count badges gray for muted chats, added previews for new chat types, like calls and join/leave statuses from a group and also added a cool indicator to the avatars to show when an user is online.
On the other hand, I have made fixes to the default window size and have also implemented a preferences window with a setting to enable the dark theme. It also has an option to follow the system-wide dark style preference that will come in GNOME 42!
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!