Chapter 18. Desktop

This chapter lists the most notable changes to desktop between RHEL 8 and RHEL 9.

18.1. Notable changes to desktop

GNOME updated to version 40

The GNOME environment is now updated from GNOME 3.28 to GNOME 40 with many new features.

GNOME 40 includes a new and improved Activities Overview design. This gives the overview a more coherent look, and provides an improved experience for navigating the system and launching applications. Workspaces are now arranged horizontally, and the window overview and application grid are accessed vertically.

Other improvements to GNOME include:

  • The performance and resource usage of GNOME has been significantly improved.
  • The visual style, including the user interface, the icons, and the desktop, has been refreshed.
  • GNOME applications no longer use the application menu, which was available from the top panel. The functionality is now located in a primary menu within the application window.
  • The Settings application has been redesigned.
  • Screen sharing and remote desktop sessions have been improved.
  • If you use the proprietary NVIDIA drivers, you can now launch applications using the discrete GPU:

    1. Open the overview.
    2. Right-click the application icon in the dash.
    3. Select the Launch on Discrete GPU item in the menu.
  • The Power Off / Log Out menu now includes the Suspend option and a new Restart option, which can reboot the system to the boot loader menu when you hold Alt.
  • Flatpak applications now update automatically.
  • You can now group application icons in the overview together into folders using drag and drop.
  • The Terminal application now supports right-to-left and bi-directional text.
  • The Pointer Location accessibility feature now works in the Wayland session. When the feature is enabled, pressing Ctrl highlights the pointer location on the screen.
  • GNOME shell extensions are now managed by the Extensions application, rather than Software. The Extensions application handles updating extensions, configuring extension preferences, and removing or disabling extensions.
  • The notifications popover now includes a Do Not Disturb button. When the button enabled, notifications do not appear on the screen.
  • System dialogs that require a password now have an option to reveal the password text by clicking the eye (👁) icon.
  • The Software application now automatically detects metered networks, such as mobile data networks. When the current network is metered, Software pauses updates in order to reduce data usage.
  • Each connected display can now use a different refresh rate in the Wayland session.
  • Fractional display scaling is available as an experimental option. It includes several preconfigured fractional ratios.

    To enable the experimental fractional scaling, add the scale-monitor-framebuffer value to the list of enabled experimental features:

    $ dconf write \
            /org/gnome/mutter/experimental-features \

    As a result, fractional scaling options are accessible on the Display panel in Settings.

For more details on the changes in GNOME, see versions 3.30 to 40.0 in Release Notes.

PipeWire is now the default audio service

The Pipewire service now manages all audio output and input. Pipewire replaces the PulseAudio service in general use cases and the JACK service in professional use cases. The system now redirects audio from applications that use PulseAudio, JACK, or the ALSA framework into Pipewire.

Benefits of Pipewire over the previous solutions include:

  • A unified solution for consumer and professional users
  • A flexible, modular architecture
  • High performance and low latency, similar to the JACK service
  • Isolation between audio clients for better security

You no longer have to configure the JACK service for applications that use it. All JACK applications now work in the default RHEL configuration.

Power profiles are available in GNOME

You can now switch between several power profiles in the Power panel of Settings in the GNOME environment. The power profiles optimize various system settings for the selected goal.

The following power profiles are available:

Optimizes for high system performance and reduces battery life. This profile is only available on certain selected system configurations.
Provides standard system performance and power consumption. This is the default profile.
Power Saver
Increases battery life and reduces system performance. This profile activates automatically on low battery.

Your power profile configuration persists across system reboots.

The power profiles functionality is available from the power-profiles-daemon package, which is installed by default.

Boot loader menu hidden by default

The GRUB boot loader is now configured to hide the boot menu by default if RHEL is the only installed operating system and if the previous boot succeeded. This results in a smoother boot experience on such systems.

To access the boot menu, use one of the following options:

  • Repeatedly press Esc after booting the system.
  • Repeatedly press F8 after booting the system.
  • Hold Shift during boot.

To disable this function and configure the boot loader menu to display by default, use the following command:

# grub2-editenv - unset menu_auto_hide

Boot loader configuration files are unified across CPU architectures

Configuration files for the GRUB boot loader are now stored in the /boot/grub2/ directory on all supported CPU architectures. The /boot/efi/EFI/redhat/grub.cfg file, which GRUB previously used on UEFI systems, is now a symbolic link to the /boot/grub2/grub.cfg file.

This change simplifies the layout of the GRUB configuration file, improves user experience, and provides the following notable benefits:

  • You can boot the same installation with either EFI or legacy BIOS.
  • You can use the same documentation and commands for all architectures.
  • GRUB configuration tools are more robust, because they no longer rely on symbolic links and they do not have to handle platform-specific cases.
  • The usage of the GRUB configuration files is aligned with images generated by CoreOS Assembler (COSA) and OSBuild.
  • The usage of the GRUB configuration files is aligned with other Linux distributions.

Lightweight, single-application environment

For graphical use cases that only present a single application, a lightweight user interface (UI) is now available.

You can start GNOME in a single-application session, also known as kiosk mode. In this session, GNOME displays only a full-screen window of an application that you have configured.

The single-application session is significantly less resource intensive than the standard GNOME session.

For more information, see Restricting the session to a single application.

Langpacks replace comps language groups

Support for various languages is now available from langpacks packages. You can customize the level of language support that you want to install using the following package names, where code is the short ISO code for the language, such as es for Spanish:


Provides a basic language support, including:

  • The glibc locale
  • The default font
  • The default input method if the language requires it
Provides only the default font for the language.

Provides the complete language support, including the following in addition to the basic language support:

  • Translations
  • Spell checker dictionaries
  • Additional fonts

In previous RHEL releases, language support was available from comps language groups. To enable support for a language, you previously installed the code-support package. The langpacks-code packages now replace the comps language groups.

Motif has been removed

The Motif widget toolkit has been removed from RHEL, because development in the upstream Motif community is inactive.

The following Motif packages have been removed, including their development and debugging variants:

  • motif
  • motif-static
  • openmotif
  • openmotif21
  • openmotif22

Red Hat recommends using the GTK toolkit as a replacement. GTK is more maintainable and provides new features compared to Motif.