#27 Borderless

• Curated by Felix

Update on what happened across the GNOME project in the week from January 14 to January 21.

Core Apps and Libraries

GNOME Shell

Core system user interface for things like launching apps, switching windows, system search, and more.

Sam Hewitt announces

The desktop Shell is getting a big visual refresh for GNOME 42! In addition to a palette update, elements throughout the shell have been given a rounder appearance. Panel menus have also gotten a major redesign, with a new style for sub-menus. The on-screen keyboard is getting big improvements to key visual feedback and word suggestions. Not to mention a tonne of other smaller fixes.

Settings

Configure various aspects of your GNOME desktop.

Georges Stavracas (feaneron) says

This week I ported the Online Accounts panel to GTK4, and landed redesigns of the Display, and the Applications panels, in Settings.

WebKitGTK

GTK port of the WebKit rendering engine.

adrian reports

We have released WebKitGTK 2.34.4, which includes a number of security fixes. While the release notes are spare, it is worth mentioning that it includes an important patch for the Safari IndexedDB leaks vulnerability which has been recently disclosed.

Software

Lets you install and update applications and system extensions.

Philip Withnall announces

Milan Crha has improved the display of permissions needed by Flatseal in GNOME Software

GJS

Use the GNOME platform libraries in your JavaScript programs. GJS powers GNOME Shell, Polari, GNOME Documents, and many other apps.

ptomato announces

In GJS this week:

  • GJS upgraded its underlying JS engine to SpiderMonkey 91, bringing lots of modern JS conveniences. This upgrade was done by Evan Welsh, Chun-wei Fan, and myself. Here’s a sampler of what we get:
    • #privateFields and #methods()
    • The ??=, &&=, and ||= operators
    • The at() method for arrays and strings, allowing indexing with negative numbers
    • Promise.any()
    • Error causes
    • WeakRefs
    • More locale-aware formatting features
  • Evan also added a standards-compliant setTimeout() and setInterval() to GJS, these can now be used as in web browsers, while still integrating with GLib’s main loop.
  • Evan also added overrides for GObject.Object.new() and GObject.Object.new_with_properties() to make them work with properties.
  • Previously, pressing Ctrl+D at the debugger prompt would print an error message instead of quitting. I fixed this.
  • I added column numbers to SyntaxError messages, to go along with the line number.
  • Yet more thanks to Evan for various other contributions.

Circle Apps and Libraries

gtk-rs

Safe bindings to the Rust language for fundamental libraries from the GNOME stack.

Bilal Elmoussaoui reports

After months working on gtk-rs bindings, we finally made a new release! 🎉 The release comes with supporting various new APIs like

  • BuilderScope support in gtk4-rs, it means you can finally set function names on the UI file and define the callback in your Rust code
  • gdk3 wayland API bindings
  • A release of almost all the gir based Rust bindings in World/Rust
  • Brand new GStreamer plugin that allows you to “stream” your pipeline to a GdkPaintable You can find more details on the release blog post and on gstreamer bindings/plugins release blog post

Third Party Projects

Romain reports

I wrote UI Shooter, a tool to make screenshots of GTK4 widgets from a UI file.

It allows loading CSS, resources and translations, setting scale and dark color scheme, and using libadwaita’s stylesheet. It’s mainly intended to be used in headless environments, so I provide a container image running the Weston compositor that can be used as is or extended at will.

I use it in Metadata Cleaner’s CI pipeline to automatically take screenshots of various widgets for the help pages when a translation is added or updated.

Doomsdayrs announces

Announcing, gtk-kt https://gitlab.com/gtk-kt/gtk-kt

gtk-kt is a Kotlin binding of the GTK API. Allowing developers who are familiar with Java / Kotlin to easily write a GTK application.

It is also an easy safe way for new programmers to start creating GTK applications, only needing 10 lines & 154 characters to create a single window. Compare that to C which takes 26 lines and 602 characters, that is a whopping 75% less characters to make a simple window, imagine that for larger projects with more complex components.

It has neared its completion stages, with 97.49% of GTK classes wrapped in Kotlin, leading me to release the first alphas to https://maven.org .

Also being developed/planned is libadwaita (https://gitlab.com/gtk-kt/libadwaita-kt) support and xdg-portal (https://gitlab.com/gtk-kt/libportal-kt) support.

Aaron Erhardt reports

Relm4 0.4 was released this week with many improvements! The highlights include many macro improvements, type-safe actions, more flexibility at runtime and updated dependencies. The full release announcement can be found here.

Phosh

A pure wayland shell for mobile devices.

Guido says

phosh got a VPN quicksetting last week that toggles the last used VPN connection. On the compositor side (phoc) we updated to a newer wlroots which allowed us to enable the xdg-foreign and viewporter wayland protocols (which help flatpaks to position file dialogs better and some video workloads respecitively).

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!