#27 Borderless
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 numbersPromise.any()
- Error causes
- WeakRefs
- More locale-aware formatting features
- Evan also added a standards-compliant
setTimeout()
andsetInterval()
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!