#153 Proudly Colorful

• Curated by Felix

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.

Make ARIA posinset and setsize global

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 activate

As 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!