Gnome 40

Fashionable GNOME Forty | The Roundup #19

April 27, 2021

Welcome to The Roundup #19, your bytes of Solus news. In this roundup, we talk about our Budgie 10.5.3 bug fix release, GNOME 40, move to KDE’s Qt5 patch collection, and more!

Budgie 10.5.3

Budgie 10.5.3 is a minor release that introduces fixes for bugs, various quality-of-life improvements, and support for the GNOME 40 stack.

Bug Fixes and Cleanup

Budgie 10.5.3 introduces fixes to Budgie panel applets, Raven, and various window state tracking.

  • Drop use of Queue and Cancellable in Raven’s NotificationView.
    • Instead of using a Queue (which is not thread safe anyways), just update a reference to a NotificationWindow since we only really cared about the head of the Queue to begin with.
    • Dropped Cancellable usage for async pixbuf scaling. There has not really been a scenario yet where we have not been able to scale an icon within the amount of time before a NotificationWindow is removed.
  • Fix application icons not scaling in Raven’s Notification Group headers.
  • Fix issue with VirtualBox icon not being displayed in IconTaskList applet
  • Fix regression in Budgie Desktop Settings icon handling.
  • MPRIS metadata, playback status, and CanGoPrevious / CanGoNext fetching is now performed immediately rather than being an unnecessary idle operation.
  • Notifications now use a high priority timeout.
  • Notification iconography now uses a consistent IconSize.DIALOG instead of IconSize.INVALID and only scales if the icon provided is not already the desired height.
  • Prevent Budgie Desktop Settings from being pinned via drag-and-drop, fixing an issue where Budgie Desktop Settings was inadvertently pinnable and unable to be unpinned.
  • Sound Indicator applet and Raven
    • Use standard mute/unmute methods, fixing issues like muting with media keys and then trying to unmute via the applet, which would previously not work.
  • System Tray applet
    • Fix issue with KeePass causing panel segfaults.
    • Various stability improvements, such as more proactive X11 error trapping.

GNOME 40 Support

Budgie 10.5.3 introduces support for the GNOME 40 stack. GNOME 40 introduced various changes in Mutter, gsettings-desktop-schemas, and gnome-shell which impacted the ability to use Budgie under a GNOME 40 stack or in conjunction with GDM (GNOME’s login manager which leverages gnome-shell).

When compiled alongside GNOME Settings Daemon 40.x, Budgie will use the migrated font anti-aliasing and hinting options, which were moved from org.gnome.settings-daemon.plugins.xsettings to org.gnome.desktop.interface. In GNOME Shell and GNOME Settings Daemon 40, there were changes introduced which impacted Budgie’s ability to use dedicated screensavers, such as Solus’ fork of gnome-screensaver (which we have been using since 2017). This fork has now been formally renamed to budgie-screensaver, bumped to v4, and promoted to a required component of Budgie Desktop, with changes introduced to facilitate Budgie’s continued ability to lock the session and attempt to co-exist in an installation environment alongside GNOME Shell and GDM. As always, we encourage that Budgie be used with lightdm and an optional greeter such as slick-greeter, as opposed to being installed alongside GDM and GNOME Shell.

Quality-of-life Improvements

Budgie Desktop Settings

Here are some quality-of-life improvements shipping in Budgie 10.5.3

  • Filter out audacious notifications so they do not clutter up Raven.
  • Hide “Default”, which is typically Adwaita / GTK’s internal theme. We continue to encourage the use of theming that officially supports Budgie, such as Materia and Plata.
  • Mutter and WM preference schema settings are now only applied for Budgie session.
  • Spacing is now configurable in the Status applet.
  • The application fullscreen state tracking has been slightly rewritten to use the window XIDs, only call our track window state function on specific flags in the changed or current state, and reducing instances where some unset flags would not result in the application being removed as a fullscreen application.
  • There is now an option in Budgie and exposed via Budgie Desktop Settings’ “Windows” section to automatically pause notifications when a window is fullscreen and unpause when there no longer is a fullscreen window. This is useful in reducing distractions when gaming or watching content!
  • To improve the default user experience of Budgie on some downstream operating systems such as Arch Linux, Budgie now ships with a default wallpaper, eliminating the need for downstreams to apply supplemental changes or ship a wallpaper package.
  • We will no longer filter device added / removed notifications. This resolves issues where ejection notifications for external media would not get stored in Raven’s Notifications section.
  • When xdotool is available on the operating system, the Lock Keys applet can be clicked to toggle CapsLock and NumLock!

Get the Release

Official distribution tarballs for Budgie 10.5.3 are available here. For Solus users, Budgie 10.5.3 will be coming this Friday, though most improvements above are already in the stable repository!

GNOME 40

Gnome 40

With this Friday’s sync to the stable repository, we will be rolling out the GNOME 40 stack. This stack upgrade introduces the latest updates to GNOME Shell, GNOME’s desktop environment, as well as its applications, libraries, and window manager.

Highlights

Solus users can expect goodies such as:

  • GNOME Shell
    • Improved mouse gestures for switching workspaces (Super + Alt + Scroll)
    • New horizontal-oriented layout for application grid and dash.
    • Updated keyboard shortcuts for toggling the overview and switching workspaces.
  • Boxes
    • Allow users to replace install source of live images
    • Improve human-readable names for OS variants
    • Indicate that we can open other formats other than .iso
    • Update the recommended-downloads list with latest releases
  • Builder
    • Allow disabling show-right-margin with .editorconfig
    • Debug messages from GLib/GTK are now only shown when debugging your application, not running without debugger.
    • Fix highlight after pasting when multiple cursors are in use
    • GNOME application templates now provide example icons
    • New libide helpers for plugins to locate addins by module name
    • Project tree improvements
    • Support running GTK 4 applications
  • Calculator
    • Added Ctrl+Delete shortcut for clearing the current equation
    • Added Ctrl+O shortcut for degrees symbol
    • Added support for frequencies conversion
    • Added support for converting to and from weeks
    • Added support for converting to and from centuries and decades
    • Dim inapplicable bits on word size change
    • Show 4 decimals in converter instead of only two
  • Evince
    • Add support for RAR v5 archives through libarchive
    • libview: Fix support for HiDPI in link preview
  • Files
    • Add support for extracting password-protected archives
    • Add support for creation date
    • Do not use default location instead of root in path bar
    • Don’t save window state when tiled
    • Fix Batch rename dialog crashes
    • Fix crashes when closing the last tab
    • Fix detection and handling of remote files
    • Group files depending on the opening app
    • Improve tab completion in the location entry
    • Preserve mtime of non-empty directories on move
  • GDM
    • Don’t overwrite PATH set by user
    • PAM integration improvements
    • Support systems that boot before the graphics subsystem fully loads
  • Gedit
    • Fix huge CPU consumption when a folder with content is deleted
    • Start to use TeplBuffer and TeplFile APIs. As a result the new tabs are now named “Untitled File”, not “Untitled Document”.
  • GNOME Settings Daemon
    • Color: Consider night-light active when disabled until tomorrow
    • Fix rfkill on newer kernels
  • Settings
    • Display: Try harder to select a good and working scale
    • Mouse & Touchpad: Allow horizontal scrolling in test page
    • Show hardware model and vendor in the About panel
    • Sound: Update mute button icon when volume changes
    • Various fixes to the language chooser
  • Music
    • Fixed: Adding songs to favorite crashes the app
    • Fix album selection checkboxes style
    • Fix artist queries to retrieve art
    • Fix playlist deletion

Defaults Changes

As a result of various changes to GNOME Shell, the current changes are being applied to various branding packages we ship or have shipped for Solus GNOME Edition:

  • Plata-noir has been swapped out for Materia-dark. Plata Theme has not seen development since the GNOME 3.38 stack release, which has meant considerable breakages under 40, alongside GTK4. Materia GTK Theme provides a very similiar look and feel, so we are comfortable with applying this switch. If you changed your GTK or Shell theme to a non-default value, run the command:

    gsettings reset org.gnome.desktop.interface 'gtk-theme'

  • Dash to Dock is temporarily deprecated from the Solus repositories and is no longer enabled by default via our desktop branding. We will reintroduce Dash-to-Dock support when the current merge request for GNOME 40 support, which introduces some instability and is “very much WIP” (exact quote), is merged in and a release is tagged around it.

The remaining extensions enabled by default, like Impatience and Tray-Icons-Reloaded, are still supported and enabled.

Upgrading

As always during a GNOME update, if you are using GNOME Shell, be sure to disable any extensions which we do not provide / have enabled out-of-the-box to ensure the best possible upgrade experience. Not doing so may result in a broken desktop experience, crashes, or worse. It is not the responsibility of Solus or GNOME to ensure those extensions are maintained and updated against newer GNOME Shell APIs. If they break, we suggest you kindly reach out to the developer. For the best possible upgrade experience, you may want to properly reset your extensions back to the stock configuration. This can be done by opening up a Terminal and running the command listed below.

gsettings reset org.gnome.shell 'enabled-extensions'

With any ecosystem as large as GNOME’s, you can expect and may encounter various issues with GNOME Shell, the window manager, or applications. We always encourage you check the respective upstream projects for issues, filing bugs with them to enable all users across the Linux ecosystem to benefit.

As with every GNOME Stack upgrade, we take this opportunity to remove packages from our repository that have either:

  1. Implemented changes which result in the application no longer being aligned with the goals / purpose of Solus
  2. Not received updates for several stack upgrades or an extended period of time
  3. No longer compile / work as originally intended against newer upgrades

The majority of the packages which have been removed during this GNOME Stack upgraded are listed below, excluding old auto-generated documentation packages, and the reason for their deprecation:

  • epiphany: We have multiple alternative and objectively better web browsers in our repos. Epiphany has been held back for some time due to libhandy and we are more comfortable with deprecating it at this point. You can always get it from Flatpak.
  • gnome-clocks: Used libhandy but actual deprecation reason is that it does not support new gweather APIs.
  • nemiver: Has not been developed for a number of years by GNOME and they have other debugging utilities like what you can get via sysprof and Builder.

We have also held back baobab, gnome-disks, gnome-photos, and gnome-maps due to their new requirement for libhandy. This is in addition to existing applications held back. It is always worth keeping in mind that should you desire the most recent versions of this software, flatpak and snap support is available!

KDE Framework 5.81.0 and Plasma 5.21.4

KDE Frameworks has been updated to 5.81.0. This introduces fixes such as:

  • Baloo: Update filename terms when moving/renaming file
  • Breeze Icons
    • Added branches with leaves to Kmymoney icon
    • Add high-brightness and low-brightness icons
    • Fix location of brightness icons
    • Link svn-* icons to new vcs-* icons
    • Make lock icon filled status consistent
  • KConfigWidgets: Introduce KHamburgermenu
  • KCoreAddons: Enable Unicode support in QRegularExpression where needed
  • KIO
    • Fix crash in ApplicationLauncherJob(service) when service is null
    • Handle errors during xattr copy in a more robust way
  • KNotification: Don’t close resident notifications when action is invoked
  • KTextEditor
    • Avoid gaps in indentation line drawing
    • Add option to keep spaces to the left of cursor when saving
    • Don’t warn about unsaved changes when closing if blank and unsaved
    • Don’t use F9 & F10 as shortcuts
    • Restrict horizontal range of cursor to avoid unintentionally wrapping

Full announcement here.

Plasma 5.21.4

Plasma has been updated to 5.21.4. This introduces numerous bug fixes such as:

  • Bluedevil: Fix tooltip showing wrong name for connected device.
  • KScreen: Prefer “21:9” over “64:27” aspect ratio
  • KWin: Fix crash on hotplugging displays while switched to another TTY.
  • Plasma Audio Volume Control: Round volume to avoid increasing or decreasing by more than stepSize.
  • Plasma Desktop: Fix zero badges (eg when downloading small files with Firefox).
  • Plasma NetworkManager: Fix bug with openfortivpn that do not support 2fa.
  • Plasma Systemmonitor: Fix scrollbar overlapping configuration page.
  • Plasma Workspace
    • applets/digital-clock: Fix timezone placeholder message positioning.
    • Fix color scheme preview.
    • Krunner: Restore history related property and methods for compatibility with third party themes.

Full changelog here.

Postgresql 13

Our Postgresql has been updated to 13.2, which features various changes noted in the Postgresql release notes. If you use postgresql for local development purposes, as with all major upgrades you will need to perform a dump / restore either prior to upgrading or by re-installing an older version of postgresql, performing the dump, then doing the restore post-upgrade.

To assist with migration, this has been formally documented on our Help Center!

Qt 5.15.3 Upgrade

KDE / Plasma Desktop maintainer Friedrich von Gellhorn (a.k.a Girtablulu) has moved our Qt5 to KDE’s Qt 5 patch collection, released as 5.13.5, including the following packages:

Package Highlights

Here is a highlight of some other package updates that have been done since our last sync. Please note this is not a comprehensive list, we were not going to go through hundreds of package updates. It also is not going to cover anything that has landed between the release of the blog post and the sync on April 30th, because time does not work that way: