#153 Proudly Colorful
Update on what happened across the GNOME project in the week from June 14 to June 21.
Sovereign Tech Fund
Sonny announces
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 past couple of weeks
Completed and landed porting Baobab away from GtkTreeView.
Key Rack
Key Rack is a new application to manage desktop secrets and aims to replace Sea Horse.
Implement localization support
Add CI support
Passwords can now be added to a keyring. Thanks to the zxcvbn library, the password strength is displayed directly and guidance is provided on how the password can be improved.
Both the keys and the keyrings/apps can now be searched.
Added Flatpak File Monitor, which detects changes and automatically updates the views.
Setup
Setup is a new OEM style Installer for image based operating systems.
Fully implemented the EULA page. The License now comes from a file the distro controls. If the file is missing, the page is skipped. It can render markup now! So the EULA can have a bit of (limited) formatting.
Started work on the disk selection pages
- Detect & warn about Intel Rapid Storage technology
- Mocked-up the various possible behaviors of the disk selection pages, and still iterating on it with Sam
- Started working on reading the data from udisks, instead of the mocked-up data. Not hooked into UI yet
Here is a video demo showcasing
- language page from last week
- EULA page
- current state of disk selection flows
Global Shortcuts
The Global Shortcuts portal is a standard API allowing applications to register global shortcuts. These shortcuts can be used by apps to react to the user input, regardless of the input focus state. Besides the obvious advantages to support it in GNOME, its implementation is a prelimary step towards better screen reader support on Wayland with the Accessibility Shortcuts Portal
Continued asjusting to feedback for GlobalShorcuts in Settings and Shell
Added GlobalShortcuts portal to ashpd demo.
Video of Global Shortcuts in ashpd demo
Orca
Orca is the screen reader of the Linux desktop.
Created a document to help application developers make their application more accessible to screen reader users see Tips for Application Developers.
Improve presentation of static text exposed via description
Completed eliminating formatting strings for presentation generation.
- Branch for user testing: Eliminate use of formatting strings for braille: https://gitlab.gnome.org/GNOME/orca/-/commit/088e39d0
- Braille is the last thing still using formatting strings, so work in this area will soon be complete
Make ARIA posinset and setsize global
- Make posinset and setsize attribute retrieval global: https://gitlab.gnome.org/GNOME/orca/-/commit/eb0b080da
- This change makes it possible for the GTK developers to fix https://gitlab.gnome.org/GNOME/gtk/-/issues/6765 without having to expose all objects in the accessibility tree
oo7
oo7 is a new secret service provider and aims to replace gnome-keyring and libsecret.
Completed implemention of the prompt, oo7-daemon is now able to access the GNOME Shell based prompt to complete org.freedesktop.Secret.Prompt calls
Video demonstrating oo7 triggering the GNOME Shell prompt to unlock the keyring:
Newton
Newton is the new Wayland native protocol for accessibility on the Linux desktop.
Published a blog post and demo Update on Newton, the Wayland-native accessibility project
Finished prototype of key grabbing implementation for Orca on Wayland, including support for arbitrary modifiers including Caps Lock. Had to insert key grabbing at a different stage of Mutter event handling to get it right.
GTK: Implemented support for the most important AccessKit actions, including the ability for ATs to change the caret position or text selection, which is important for the Say All command. Also debugged some crashes. https://gitlab.gnome.org/mwcampbell/gtk/tree/accesskit
Newton AT client libraries consolidated into a single repository
Nautilus File Chooser
Nautilus is the GNOME file manager. We are working on using it as the file chooser for the GNOME desktop.
4 of the preparatory merge requests landed
3 more requests were opened
Glycin
A new library for sandboxed and extandable image loading
Fixes and docs for splitting C bindings into libglycin and libglycin-gtk4.
Added structure for having “editors” as addition to “loaders” for image formats for image editing in glycin. As a first example, JPEG now supports changing the image orientation if a respective Exif tag is present.
libadwaita
The platform library of GNOME
Generate standalone colors from bg colors
Finished AdwBottomSheet and made it public
Support nested slots in AdwMultiLayoutView
GNOME Shell
Created a GNOME Shell extension to get feedback about changing notification banner expension.
GNOME Core Apps and Libraries
Libadwaita
Building blocks for modern GNOME apps using GTK4.
Alice (she/her) says
After a long wait, we have customizable accent colors!
If you maintain an app using libadwaita (and don’t override its accent color), make sure you don’t use hardcoded blue color where system accent color would make sense, or vice versa. (see docs)
Libadwaita apps will also pick up accent colors when running in environments such as elementary OS or KDE.
Image Viewer (Loupe)
Browse through images and inspect their metadata.
Sophie (she/her) reports
Loupe made its first small step towards image editing. Rotating JPEG images that contain an Exiv entry for orientation, the change of orientation is now saved within the image.
This is made possible by glycin now supporting changes on images in addition to loading images. In contrast to some other image viewers, Loupe will not rewrite the image or even re-encode it with potential quality loss. Instead, it is just changing the one byte inside the file that’s responsible for determining the image orientation.
Support for more formats and more editing features will hopefully follow over time. If you want to support my work you can join my Patreon and get weekly updates.
Baobab
Chris 🌱️ announces
This week Disk Usage Analyzer (AKA baobab) landed multiple PRs that refresh the UI. Disk Usage Analyzer now uses GtkColumnView for its file tree, uses a new pathbar look inspired by Nautilus, and uses symbolic icons for the Devices & Locations page. We also got rid of some usage of deprecated APIs like GtkStyleContext where possible.
GNOME Circle Apps and Libraries
Workbench
A sandbox to learn and prototype with GNOME technologies.
Sonny says
Auto suggest/complete landed in Workbench. The feature can be used to discover widgets, properties and write UI faster. You can try it out now in Workbench nightly, testers and feedback welcome. Kudos to James Westman for writing the language server making this possible.
Graphs
Plot and manipulate data
Sjoerd Stendahl announces
This week we pushed a minor update to Graphs, tackling a bunch of persistent bugs in the current stable release. The most exciting difference in this release is probably a major increase in start-up time, resulting mostly from the way we bundle style-previews now with the build. This change reduces total start-up time of Graphs by 1.5 seconds on my machine, reducing the
do_activate
stage from 1.8s to 0.3s.Apart from some minor under-the-hood improvements and other bug fixes, the most likely changes to be noticed are:
- Updates to translations, including added support for Hungarian
- Further fixes and improvements to the regex logic in the equation generation. Now nested parentheses are handled correctly, an equation like
sin(x+2(pi-x)²)+2
is now handled properly for example.- The minimum vertical height of the main window has been decreased significantly.
- Delimiters are now handled correctly when importing data, even if an arbritrary amount of whitespace is involved.
- Fixed an issue where the
New Project
dialog would not activateAs always, the latest release can be retrieved from Flathub. Credits for the original graph in the screenshot go to xkcd.
Third Party Projects
qwertzuiopy announces
This week I released my fist app, Libellus! Libellus is a small wiki application allowing you to browse through DnD without being distracted by ads or having to open a browser. It supports most of DnD including Classes, Races, Monsters Spells and Items. It is available on Flathub.
xjuan reports
New Cambalache development release 0.91.1 is out!
Key features:
- Port to Adwaita
- Custom wayland compositor widget
Read more at https://blogs.gnome.org/xjuan/2024/06/21/new-cambalache-development-release-0-91-1/
Cambalache is a tool to create UI for Gtk 4/3
Documentation
Dan Yeaw announces
PyGObject, the Python bindings for using GNOME platform libraries in your applications, received a big improvement to the documentation by adding tutorials. The source of them came from centralizing the magnificent work in the PyGObject-Guide by Rafael Mardojai CM, which was based on the PyGObject-Tutorial by Sebastian Pölsterl. Thanks to all the contributors to both of these projects and a community effort to relicense them under the LGPL. Check out the tutorials at https://pygobject.gnome.org/tutorials/.
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!