Collect items for GNOME 42 release notes
This issue is for tracking items of interest for the GNOME 42 release notes. Please feel free to edit the issue directly or make suggestions in the comments. Changes can be big or small - we want to know every change that might be of interest or an enhancement for either users or developers.
For users
Dark mode
New for 42. Settings has a new panel - background was turned into "Appearance", and the dark mode setting is there.
Details:
- Apps must opt in to supporting the setting, but libadwaita (but not libhandy) apps opt in by default
- Apps can have their own light/dark/follow global setting preferences, so you can opt out for some apps
- Backgrounds can be created that have a light/dark variant which will be used depending on the system setting, and all GNOME backgrounds have been updated to have light/dark variants.
New screenshot UI
Completely new, modern screenshot experience. Allows:
- Screenshot the entire screen, a single window, or an area
- Screencasts of the screen or an area
Fully interactive - press PrintScr and then choose what you want to capture.
Screenshots are captured at the moment the key is pressed, making it possible to take shots in the moment, and to capture menus and other transient UI elements.
New shortcuts are:
- ...
- ...
- ...
GTK 4
Core apps ported to GTK 4:
- Calculator
- Clocks
- Settings
- Software
- Characters
- Contacts
- Disk Usage Analyzer
- Fonts
- To Do
- Tour
Other non-core apps have also been ported to GTK 4:
- Sound Recorder
- App Icon Preview
- Contrast
- Icon Library
- Secrets
User advantages of GTK/libadwaita:
- Updated UI visuals
- Faster performance
- New modern widgets
- ...
Software
Settings
Lots of improvements as part of the GTK 4 port:
- Redesigned display settings
- Redesigned application settings
- Redesigned remote desktop settings together with change to RDP
Web
- Hardware-accelerated rendering is now enabled on all websites. Users should notice improved scrolling performance.
Files
- Updated Rename popover
- New path bar
- Menu reorganization
System
Big visual refresh of the shell.
Improved perceived responsiveness for games and graphics apps - https://blogs.gnome.org/shell-dev/2021/12/08/an-eventful-instant/
Major performance improvements in file indexing - https://discourse.gnome.org/t/tracker-3-3-will-reindex-files-and-change-content-ids/8583
Support for direct scanout with most fullscreen OpenGL or Vulkan clients. (Something we already supported in recent versions, however only in very selective cases.) Improved performance such as reduced energy consumption for video playback and increased FPS for games.
Calendar
Text Editor
New default text editor for GNOME, replacing gedit. Highlights:
- GTK 4
- Autosave
- Slick, modern design
Console
Remote Desktop
RDP has been made the default remote desktop protocol, resulting in a more feature full and performant experience.
For developers
Builder
- New GTK 4 templates for Rust, Python and Vala
- "GNOME Builder resolves files now to a toolbox or podman container correctly and therefore can offer clang completions, symbol resolution and hover information from the container. " - see https://thisweek.gnome.org/posts/2022/01/twig-28/
libadwaita
Major developments since 1.0:
- The big 1.0 - https://blogs.gnome.org/alexm/2021/12/31/libadwaita-1-0/
- Stylesheet refactoring
- New style classes like
.card
- New style classes like
- New documentation:
- New Toast widget
Human Interface Guidelines
Updated for libadwaita 1.0:
Sysprof
Improvements to profiling and getting stack traces for Flatpaks. See https://thisweek.gnome.org/posts/2021/10/twig-14/
xdg-desktop-portal
Screencast sessions can be restored. Improved screencast dialog.
Blueprint
New markup language for GTK UI: https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/
GJS
- Evan Welsh made GObject interfaces enumerable, so you can now do things like Object.keys(Gio.File.prototype) and get a list of the methods, like you can with other GObject types.
- Evan also fixed a memory leak with callbacks.
- Marco Trevisan and myself landed a large refactor involving type safety.
- Chun-wei Fan kept everything buildable on Windows.
- Thanks to Sonny Piers, Sergei Trofimovich, and Eli Schwartz for various other contributions.
- 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.
gtk-rs
New release - https://gtk-rs.org/blog/2022/01/16/new-release.html
Vala
New release - GNOME/vala@e13e0d68
See summary here - https://thisweek.gnome.org/posts/2022/01/twig-28/