Wayland 1.24 is now a reality: stability, new features, and more

wayland gnome

After thirteen months of continuous development, the official launch of Wayland 1.24 was announced, the latest stable version of the protocol that implements various improvements, in addition to fixing various bugs.

Unlike previous releases, this new version of Wayland 1.24 does not introduce any disruptive changes, but consolidates previous work with stability improvements, minor protocol enhancements, and full backwards compatibility at both the API and ABI levels.

What's new in Wayland 1.24

In this new version of Wayland 1.24, one of the most notable new features is the implementation of the wl_fixes interface , designed to correct limitations in other core interfaces of the protocol . Among its capabilities is destroy_registry, which allows for the explicit termination of the use of the wl_registry object.

Another interesting new feature introduced in Wayland 1.24 is the new function added to the wl_keyboard::key API , which now incorporates a new pseudo-state called "repeated ". This modification improves how sustained key presses are represented, especially in environments where keyboard input accuracy is critical, such as remote desktops or VNC sessions over Wayland.

With `wl_keyboard::key`, a key can be set to the " repeated " state only after it has been pressed but before it is released. While the key remains in this state, the server can explicitly generate multiple " repeated " events , distinct from the "pressed" state. This change is especially useful in scenarios where it is necessary to distinguish between a single press and a long press, such as when typing long characters or controlling graphical interfaces remotely, where the traditional behavior is different.

Wayland 1.24 also incorporates new features, such as:

  • wl_display_dispatch_queue_timeout() and wl_display_dispatch_timeout(): Handle events with a timeout.
  • wl_shm_buffer_ref() and wl_shm_buffer_unref(): allow access to shared memory buffers even after they have been destroyed.
  • wl_proxy_get_interface() and wl_resource_get_interface(): facilitate dynamic retrieval of interfaces.
  • wl_resource_post_error_vargs(): Improves error handling with variable argument lists.

New extensions

It's also worth mentioning that the Wayland ecosystem has been enriched over the past year with new extensions that expand its capabilities, especially in terms of color management, visual effects, and input handling. While most of these new extensions aren't exclusive to the latest release, it's worth highlighting the significant ones introduced in recent months:

  • color-management and color-representation-v1: enable color management and HDR support.
  • xdg-toplevel-tag: makes it easier to identify windows after reboots.
  • ext-background-effect: allows blurring and effects in transparent areas.
  • pointer-warp: enables instant repositioning of the pointer.
  • xx-session-management: restores the state of windows after unexpected closures.
  • xx-input-method: advances in a new system of input methods.
  • ext-data-control: allows privileged clients to manipulate data (ideal for clipboards).
  • ext-workspace: manages virtual desktops and their status.
  • xdg-system-bell: allows the system to emit alert signals.
  • xdg-toplevel-icon: associates icons with top-level windows.
  • ext-image-capture-source and ext-image-copy-capture: allow you to capture screen content.
  • FIFO and commit timing: manage update times and prioritization of the displayed content.

Finally, if you are interested in learning more, you can find the details at the following link.

How do I install Wayland if it's not present in my distribution?

Wayland is not installed as a standalone application, as it is a protocol and requires a compatible display server, such as Wayfire, Weston, Sway, or wlroots, and a compositor such as GNOME, KDE Plasma, etc., to support it.

It's important to mention that most modern distributions already come with Wayland installed by default, at least as an option. But if you're unsure whether it's present or want to update, you can follow the steps below.

How do I know if I'm using Wayland?

To check if you have Wayland in your distribution, just type:

echo $XDG_SESSION_TYPE

If it says wayland, you are using Wayland.

If it says x11, you are using X11.

You can also check this variable:

loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type

If you've already checked whether or not you have Wayland and your case is that you don't, you can install it with one of the following commands:

Debian / Ubuntu

sudo apt install libwayland-client0 libwayland-server0

Fedora

sudo dnf install wayland

Arch Linux and derivatives:

sudo pacman -S wayland

OpenSUSE

sudo zypper install wayland libwayland-egl1 libwayland-client0 libwayland-server0

Add as preferred source in Google