fbpx
Wikipedia

Wayland (protocol)

Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol.[8] A display server using the Wayland protocol is called a Wayland compositor, because it additionally performs the task of a compositing window manager.

Wayland
Weston, the reference implementation of a Wayland server.
Original author(s)Kristian Høgsberg
Developer(s)freedesktop.org et al.
Initial release30 September 2008; 15 years ago (2008-09-30)[1]
Stable release
Wayland: 1.22,[2] Weston: 12.0.2[3] / 4 April 2023; 7 months ago (2023-04-04)
Repository
  • gitlab.freedesktop.org/wayland/wayland
Written inC
Operating systemOfficial: Linux
Unofficial: NetBSD, FreeBSD, DragonFly BSD[4]
Type
LicenseMIT License[5][6][7]
Websitewayland.freedesktop.org

Wayland is developed by a group of volunteers initially led by Kristian Høgsberg as a free and open-source community-driven project with the aim of replacing the X Window System with a modern, secure,[9][10][11][12] and simpler windowing system for Linux and other Unix-like operating systems.[8][13] The project's source code is published under the terms of the MIT License, a permissive free software licence.[13][5]

As part of its efforts, the Wayland project also develops a reference implementation of a Wayland compositor called Weston.[8]

Overview edit

 
  1. The evdev module of the Linux kernel gets an event and sends it to the Wayland compositor.
  2. The Wayland compositor looks through its scenegraph to determine which window should receive the event. The scenegraph corresponds to what is on screen and the Wayland compositor understands the transformations that it may have applied to the elements in the scenegraph. Thus, the Wayland compositor can pick the right window and transform the screen coordinates to window local coordinates, by applying the inverse transformations. The types of transformation that can be applied to a window is only restricted to what the compositor can do, as long as it can compute the inverse transformation for the input events.
  3. As in the X case, when the client receives the event, it updates the UI in response. But in the Wayland case, the rendering happens by the client via EGL, and the client just sends a request to the compositor to indicate the region that was updated.
  4. The Wayland compositor collects damage requests from its clients and then re-composites the screen. The compositor can then directly issue an ioctl to schedule a pageflip with KMS.

The Wayland Display Server project was started by Red Hat developer Kristian Høgsberg in 2008.[14]

Beginning around 2010, Linux desktop graphics have moved from having "a pile of rendering interfaces... all talking to the X server, which is at the center of the universe" towards putting the Linux kernel and its components (i.e. Direct Rendering Infrastructure (DRI), Direct Rendering Manager (DRM)) "in the middle", with "window systems like X and Wayland ... off in the corner". This will be "a much-simplified graphics system offering more flexibility and better performance".[15]

Høgsberg could have added an extension to X as many recent projects have done, but preferred to "[push] X out of the hotpath between clients and the hardware" for reasons explained in the project's FAQ:[13]

What’s different now is that a lot of infrastructure has moved from the X server into the kernel (memory management, command scheduling, mode setting) or libraries (cairo, pixman, freetype, fontconfig, pango, etc.), and there is very little left that has to happen in a central server process. ... [An X server has] a tremendous amount of functionality that you must support to claim to speak the X protocol, yet nobody will ever use this. ... This includes code tables, glyph rasterization and caching, XLFDs (seriously, XLFDs!), and the entire core rendering API that lets you draw stippled lines, polygons, wide arcs and many more state-of-the-1980s style graphics primitives. For many things we've been able to keep the X.org server modern by adding extension such as XRandR, XRender and COMPOSITE ... With Wayland we can move the X server and all its legacy technology to an optional code path. Getting to a point where the X server is a compatibility option instead of the core rendering system will take a while, but we'll never get there if [we] don’t plan for it.

Wayland consists of a protocol and a reference implementation named Weston. The project is also developing versions of GTK and Qt that render to Wayland instead of to X. Most applications are expected to gain support for Wayland through one of these libraries without modification to the application.

Initial versions of Wayland have not provided network transparency, though Høgsberg noted in 2010 that network transparency is possible.[16] It was attempted as a Google Summer of Code project in 2011, but was not successful.[17] Adam Jackson has envisioned providing remote access to a Wayland application by either "pixel-scraping" (like VNC) or getting it to send a "rendering command stream" across the network (as in RDP, SPICE or X11).[18] As of early 2013, Høgsberg was experimenting with network transparency using a proxy Wayland server which sends compressed images to the real compositor.[19][20] In August 2017, GNOME saw the first such pixel-scraping VNC server implementation under Wayland.[21] In modern Wayland compositors, network transparency is handled in an xdg-desktop-portal implementation that implements the RemoteDesktop portal.

Many Wayland compositors also include an xdg-desktop-portal implementation for common tasks such as a native file picker for native applications and sandboxes such as Flatpak (xdg-desktop-portal-gtk is commonly used as a fallback filepicker), screen recording, network transparency, screenshots, color picking, and other tasks that could be seen as needing user intervention and being security risks otherwise. Note that xdg-desktop-portal is not Flatpak or Wayland-specific, and can be used with alternative packaging systems and windowing systems.

Software architecture edit

Protocol architecture edit

 
In the Wayland protocol architecture, a client and a compositor communicate through the Wayland protocol using the reference implementation libraries.

The Wayland protocol follows a client–server model in which clients are the graphical applications requesting the display of pixel buffers on the screen, and the server (compositor) is the service provider controlling the display of these buffers.

The Wayland reference implementation has been designed as a two-layer protocol:[22]

  • A low-level layer or wire protocol that handles the inter-process communication between the two involved processes‍—‌client and compositor‍—‌and the marshalling of the data that they interchange. This layer is message-based and usually implemented using the kernel IPC services, specifically Unix domain sockets in the case of Linux and Unix-like operating systems.[23]: 9 
  • A high-level layer built upon it, that handles the information that client and compositor need to exchange to implement the basic features of a window system. This layer is implemented as "an asynchronous object-oriented protocol".[23]: 9 

While the low-level layer was written manually in C, the high-level layer is automatically generated from a description of the elements of the protocol stored in XML format.[24] Every time the protocol description of this XML file changes, the C source code that implements such protocol can be regenerated to include the new changes, allowing a very flexible, extensible and error-proof protocol.

The reference implementation of Wayland protocol is split in two libraries: a library to be used by Wayland clients called libwayland-client and a library to be used by Wayland compositors called libwayland-server.[23]: 57 

Protocol overview edit

The Wayland protocol is described as an "asynchronous object-oriented protocol".[23]: 9  Object-oriented means that the services offered by the compositor are presented as a series of objects living on the same compositor. Each object implements an interface which has a name, a number of methods (called requests) as well as several associated events. Every request and event has zero or more arguments, each one with a name and a data type. The protocol is asynchronous in the sense that requests do not have to wait for synchronized replies or ACKs, avoiding round-trip delay time and achieving improved performance.

The Wayland clients can make a request (a method invocation) on some object if the object's interface supports that request. The client must also supply the required data for the arguments of such request. This is the way the clients request services from the compositor. The compositor in turn sends information back to the client by causing the object to emit events (probably with arguments too). These events can be emitted by the compositor as a response to a certain request, or asynchronously, subject to the occurrence of internal events (such as one from an input device) or state changes. The error conditions are also signaled as events by the compositor.[23]: 9 

For a client to be able to make a request to an object, it first needs to tell the server the ID number it will use to identify that object.[23]: 9  There are two types of objects in the compositor: global objects and non-global objects. Global objects are advertised by the compositor to the clients when they are created (and also when they are destroyed), while non-global objects are usually created by other objects that already exist as part of their functionality.[25]

The interfaces and their requests and events are the core elements that define the Wayland protocol. Each version of the protocol includes a set of interfaces, along with their requests and events, which are expected to be in any Wayland compositor. Optionally, a Wayland compositor may define and implement its own interfaces that support new requests and events, thereby extending functionality beyond the core protocol.[23]: 10  To facilitate changes to the protocol, each interface contains a "version number" attribute in addition to its name; this attribute allows for distinguishing variants of the same interface. Each Wayland compositor exposes not only what interfaces are available, but also the supported versions of those interfaces.[23]: 12 

Wayland core interfaces edit

The interfaces of the current version of Wayland protocol are defined in the file protocol/wayland.xml of the Wayland source code.[24] This is an XML file that lists the existing interfaces in the current version, along with their requests, events and other attributes. This set of interfaces is the minimum required to be implemented by any Wayland compositor.

Some of the most basic interfaces of the Wayland protocol are:[23]: 10–12 

  • wl_display – the core global object, a special object to encapsulate the Wayland protocol itself
  • wl_registry – the global registry object, in which the compositor registers all the global objects that it wants to be available to all clients
  • wl_compositor – an object that represents the compositor, and is in charge of combining the different surfaces into one output
  • wl_surface – an object representing a rectangular area on the screen, defined by a location, size and pixel content
  • wl_buffer – an object that, when attached to a wl_surface object, provides its displayable content
  • wl_output – an object representing the displayable area of a screen
  • wl_pointer, wl_keyboard, wl_touch – objects representing different input devices like pointers or keyboards
  • wl_seat – an object representing a seat (a set of input/output devices) in multiseat configurations

A typical Wayland client session starts by opening a connection to the compositor using the wl_display object. This is a special local object that represents the connection and does not live within the server. By using its interface the client can request the wl_registry global object from the compositor, where all the global object names live, and bind those that the client is interested in. Usually the client binds at least a wl_compositor object from where it will request one or more wl_surface objects to show the application output on the display.[25]

Wayland extension interfaces edit

A Wayland compositor can define and export its own additional interfaces.[23]: 10  This feature is used to extend the protocol beyond the basic functionality provided by the core interfaces, and has become the standard way to implement Wayland protocol extensions. Certain compositors can choose to add custom interfaces to provide specialized or unique features. The Wayland reference compositor, Weston, used them to implement new experimental interfaces as a testbed for new concepts and ideas, some of which later became part of the core protocol (such as wl_subsurface interface added in Wayland 1.4[26]).

Extension protocols to the core protocol edit

XDG-Shell protocol edit

XDG-Shell protocol (see freedesktop.org for XDG) is an extended way to manage surfaces under Wayland compositors (not only Weston). The traditional way to manipulate (maximize, minimize, fullscreen, etc.) surfaces is to use the wl_shell_*() functions, which are part of the core Wayland protocol and live in libwayland-client. An implementation of the xdg-shell protocol, on the contrary, is supposed to be provided by the Wayland compositor. So you will find the xdg-shell-client-protocol.h header in the Weston source tree.

xdg_shell is a protocol aimed to substitute wl_shell in the long term, but will not be part of the Wayland core protocol. It starts as a non-stable API, aimed to be used as a development place at first, and once features are defined as required by several desktop shells, it can be finally made stable. It provides mainly two new interfaces: xdg_surface and xdg_popup. The xdg_surface interface implements a desktop-style window that can be moved, resized, maximized, etc.; it provides a request for creating child/parent relationship. The xdg_popup interface implements a desktop-style popup/menu; an xdg_popup is always transient for another surface, and also has implicit grab.[27]

IVI-Shell protocol edit

IVI-Shell is an extension to the Wayland core protocol, targeting in-vehicle infotainment (IVI) devices.[28]

Rendering model edit

 
Wayland compositor and its clients use EGL to draw directly into the framebuffer; X.Org Server with XWayland and Glamor.

The Wayland protocol does not include a rendering API.[23]: 7 [13][29][30]: 2  Instead, Wayland follows a direct rendering model, in which the client must render the window contents to a buffer shareable with the compositor.[23]: 7  For that purpose, the client can choose to do all the rendering by itself, use a rendering library like Cairo or OpenGL, or rely on the rendering engine of high-level widget libraries with Wayland support, such as Qt or GTK. The client can also optionally use other specialized libraries to perform specific tasks, such as Freetype for font rendering.

The resulting buffer with the rendered window contents are stored in a wl_buffer object. The internal type of this object is implementation dependent. The only requirement is that the content data must be shareable between the client and the compositor. If the client uses a software (CPU) renderer and the result is stored in the system memory, then client and compositor can use shared memory to implement the buffer communication without extra copies. The Wayland protocol already natively provides this kind of shared memory buffer through the wl_shm and wl_shm_pool interfaces.[23]: 11, 20-21  The drawback of this method is that the compositor may need to do additional work (usually to copy the shared data to the GPU) to display it, which leads to slower graphics performance.

The most typical case is for the client to render directly into a video memory buffer using a hardware (GPU) accelerated API such as OpenGL, OpenGL ES or Vulkan. Client and compositor can share this GPU-space buffer using a special handler to reference it.[31] This method allows the compositor to avoid the extra data copy through itself of the main memory buffer client-to-compositor-to-GPU method, resulting in faster graphics performance, and is therefore the preferred one. The compositor can further optimize the composition of the final scene to be shown on the display by using the same hardware acceleration API as an API client.

When rendering is completed in a shared buffer, the Wayland client should instruct the compositor to present the rendered contents of the buffer on the display. For this purpose, the client binds the buffer object that stores the rendered contents to the surface object, and sends a "commit" request to the surface, transferring the effective control of the buffer to the compositor.[22] Then the client waits for the compositor to release the buffer (signaled by an event) if it wants to reuse the buffer to render another frame, or it can use another buffer to render the new frame, and, when the rendering is finished, bind this new buffer to the surface and commit its contents.[23]: 7  The procedure used for rendering, including the number of buffers involved and their management, is entirely under the client control.[23]: 7 

Comparison with other window systems edit

Differences between Wayland and X edit

There are several differences between Wayland and X with regard to performance, code maintainability, and security:[32]

Architecture
The composition manager is a separate, additional feature in X, while Wayland merges display server and compositor as a single function.[33][29] Also, it incorporates some of the tasks of the window manager, which in X is a separate client-side process.[34]
Compositing
Compositing is optional in X, but mandatory in Wayland. Compositing in X is "active"; that is, the compositor must fetch all pixel data, which introduces latency. In Wayland, compositing is "passive", which means the compositor receives pixel data directly from clients.[35]: 8–11 
Rendering
The X server itself is able to perform rendering, although it can also be instructed to display a rendered window sent by a client. In contrast, Wayland does not expose any API for rendering, but delegates to clients such tasks (including the rendering of fonts, widgets, etc.).[33][29] Window decorations are to be rendered on the client side (e.g., by a graphics toolkit), or on the server side (by the compositor) with the opt-in xdg-decoration protocol, if the compositor chooses to implement such functionality.[36]
Security
Wayland isolates the input and output of every window, achieving confidentiality, integrity and availability for both. The original X design lacked these important security features,[10][11][12] although some extensions have been developed trying to mitigate it.[37][38][39] Also, with the vast majority of the code running in the client, less code needs to run with root privileges, improving security,[10] although multiple popular Linux distributions now allow the X server to be run without root privileges.[40][41][42][43]
Inter-process communication
The X server provides a basic communication method between X clients, later extended by ICCCM conventions. This X client-to-client communication is used by window managers and also to implement X sessions, selections and drag-and-drop, and other features. The Wayland core protocol does not support communication between Wayland clients at all as the corresponding functionality (if needed) is regarded by the Wayland community as something which should be implemented by the desktop environments (like KDE or GNOME), or by a third party (for example, by using native IPC of the underlying operating system).
Networking
The X Window System is an architecture that was designed at its core to run over a network. Wayland does not offer network transparency by itself;[13] however, a compositor can implement any remote desktop protocol to achieve remote display. In addition, there is research into Wayland image streaming and compression that would provide remote frame buffer access similar to that of VNC.[20]

Compatibility with X edit

XWayland is an X Server running as a Wayland client, and thus is capable of displaying native X11 client applications in a Wayland compositor environment.[44] This is similar to the way XQuartz runs X applications in macOS’s native windowing system. The goal of XWayland is to facilitate the transition from X Window System to Wayland environments, providing a way to run unported applications in the meantime. XWayland was mainlined into X.Org Server version 1.16.[45]

Widget toolkits such as Qt5 and GTK3 can switch their graphical back-end at run time,[46] allowing users to choose at load time whether they want to run the application over X or over Wayland. Qt 5 provides the -platform command-line option[47] to that effect, whereas GTK 3 lets users select the desired GDK back-end by setting the GDK_BACKEND Unix environment variable.[46][48]

Wayland compositors edit

 
Typical elements of a window. X11 does not specify what software is responsible for rendering the window decoration, whereas Wayland requires that they are drawn by the client, but will provide opt-in server-side decorations with the xdg-decoration protocol.[36]
 
Plasma 5.24.0 (February 2022) on Wayland (kwin_wayland compositor) under Arch Linux

Display servers that implement the Wayland display server protocol are also called Wayland compositors because they additionally perform the task of a compositing window manager.

  • Weston – the reference implementation of a Wayland compositor; Weston implements client side decorations
  • Enlightenment claimed full Wayland support since version 0.20[49] but work is currently underway to land a complete Wayland compositor[50]
  • KWin has nearly complete Wayland support as of 2021[51]
  • Mutter maintained a separate branch for the integration of Wayland for GNOME 3.9 (in September 2013);[52] in the 3.13.1 release in 2014, the Wayland branch was merged into the main repository.[53]
  • Clayland – a simple example Wayland compositor using Clutter
  • Hyprland — Hyprland is a dynamic tiling wayland compositor that offers unique features like smooth animations, dynamic tiling and rounded corners.
  • Sway – a tiling Wayland compositor and a drop-in replacement for the i3 window manager for X11.[54] Sway uses wlroots – a modular Wayland implementation that functions as a base for several compositors.[55][56]

Weston edit

Weston is the reference implementation of a Wayland compositor[57] also developed by the Wayland project. It is written in C and published under the MIT License. Weston has official support for only the Linux operating system due to Weston's dependence on certain features of the Linux kernel, such as kernel mode-setting, Graphics Execution Manager (GEM), and udev, which have not been implemented in other Unix-like operating systems.[58] When running on Linux, handling of the input hardware relies on evdev, while the handling of buffers relies on Generic Buffer Management (GBM). However, in 2013 a prototype port of Weston to FreeBSD was announced.[59]

Weston supports High-bandwidth Digital Content Protection (HDCP).[60]

Weston relies on GEM to share application buffers between the compositor and applications. It contains a plug-in system of "shells" for common desktop features like docks and panels.[20] Clients are responsible for the drawing of their window borders and their decorations. For rendering, Weston can use OpenGL ES[61] or the pixman library to do software rendering.[62] The full OpenGL implementation is not used, because on most current systems, installing the full OpenGL libraries would also install GLX and other X Window System support libraries as dependencies.[63]

A remote access interface for Weston was proposed in October 2013 by a RealVNC employee.[64]

Maynard edit

 
Maynard (in January 2017)

Maynard is a graphical shell and has been written as a plug-in for Weston, just as the GNOME Shell has been written as a plug-in to Mutter.[65]

The Raspberry Pi Foundation in collaboration with Collabora released Maynard and work on improving performance and memory consumption.[66][67]

libinput edit

 
libinput was created to consolidate the input stack across multiple Wayland compositors.

The Weston code for handling input devices (keyboards, pointers, touch screens, etc.) was split into its own separate library, called libinput, for which support was first merged in Weston 1.5.[68][69]

Libinput handles input devices for multiple Wayland compositors and also provides a generic X.Org Server input driver. It aims to provide one implementation for multiple Wayland compositors with a common way to handle input events while minimizing the amount of custom input code compositors need to include. libinput provides device detection[clarification needed] (via udev), device handling, input device event processing and abstraction.[70][71]

Version 1.0 of libinput followed version 0.21, and included support for tablets, button sets and touchpad gestures. This version will maintain stable API/ABI.[72]

As GNOME/GTK and KDE Frameworks 5[73] have mainlined the required changes, Fedora 22 will replace X.Org's evdev and Synaptics drivers with libinput.[74]

With version 1.16, the X.Org Server obtained support for the libinput library in form of a wrapper called xf86-input-libinput.[75][76]

Wayland Security Module edit

Wayland Security Module is a proposition that resembles the Linux Security Module interface found in the Linux kernel.[77]

Some applications (especially the ones related to accessibility) require privileged capabilities that should work across different Wayland compositors. Currently,[when?] applications under Wayland are generally unable to perform any sensitive tasks such as taking screenshots or injecting input events without going through xdg-desktop-portal or obtaining privileged access to the system.

Wayland Security Module is a way to delegate security decisions within the compositor to a centralized security decision engine.[77]

Adoption edit

The Wayland protocol is designed to be simple so that additional protocols and interfaces need to be defined and implemented to achieve a holistic windowing system. As of July 2014 these additional interfaces were being worked on. So, while the toolkits already fully support Wayland, the developers of the graphical shells are cooperating with the Wayland developers creating the necessary additional interfaces.

Desktop Linux distributions edit

As of 2020 most Linux distributions support Wayland out of the box. Some notable examples are:

  • Fedora starting with version 25 (released 22 November 2016) uses Wayland for the default GNOME 3.22 desktop session, with X.Org as a fallback if the graphics driver cannot support Wayland.[78] Fedora uses Wayland as the default for KDE desktop session starting with version 34 (released 27 April 2021)
  • Ubuntu shipped with Wayland by default in Ubuntu 17.10 (Artful Aardvark).[79] However, Ubuntu 18.04 LTS reverted to X.Org by default due to several issues.[80][81] Since Ubuntu 21.04, Wayland is the default again.[82]
  • Red Hat Enterprise Linux ships Wayland as the default session in version 8, released 7 May 2019.[83]
  • Debian ships Wayland as the default session for GNOME since version 10, released 6 July 2019.[84]
  • Slackware Linux included Wayland on 20 February 2020[85] for the development version, -current, which became version 15.0.
  • Manjaro ships Wayland as default in the Gnome edition of Manjaro 20.2 (Nibia) (released 22 November 2020).[86]

Notable early adopter:

  • RebeccaBlackOS is a live USB Debian-based[87] Linux distribution that allows a convenient way to try out a real Wayland desktop without having to make any modifications to the main operating system of the computer.[88] It has been used since as early as 2012 to showcase Wayland.[89][90]

Toolkit support edit

Toolkits supporting Wayland include the following:

  • Clutter has complete Wayland support.[91][92][93]
  • EFL has complete Wayland support, except for selection.[94]
  • GTK 3.20 has complete Wayland support.[95]
  • Qt 5 has complete Wayland support, and can be used to write both Wayland compositors and Wayland clients.
  • SDL support for Wayland debuted with the 2.0.2 release[96] and was enabled by default since version 2.0.4.[97]
  • GLFW 3.2 has Wayland support.[98]
  • FreeGLUT has initial Wayland support.[99]

Desktop environments edit

Desktop environments in process of being ported from X to Wayland include GNOME,[100] KDE Plasma 5[101] and Enlightenment.[102]

In November 2015, Enlightenment e20 was announced with full Wayland support.[103][49][104] GNOME 3.20 was the first version to have a full Wayland session.[105] GNOME 3.22 included much improved Wayland support across GTK, Mutter, and GNOME Shell.[106] GNOME 3.24 shipped support for the proprietary NVidia drivers under Wayland.[107]

Wayland support for KDE Plasma was delayed until the release of Plasma 5,[108] though previously KWin 4.11 got an experimental Wayland support.[109] The version 5.4 of Plasma was the first with a Wayland session.[110] During 2020 Klipper was ported to Wayland and the next 5.20 release in October 2020 has the goal to improve screen casting and recording.[111]

Other software edit

Other software supporting Wayland includes the following:

  • Intelligent Input Bus is working on Wayland support, it could be ready for Fedora 22.[112]
  • RealVNC published a Wayland developer preview in July 2014.[64][113][114]
  • Maliit is an input method framework that runs under Wayland.[115][116][117]
  • kmscon supports Wayland with wlterm.[118]
  • Mesa has Wayland support integrated.[119]
  • Eclipse was made to run on Wayland during a GSoC-Project in 2014.[120]
  • The Vulkan WSI (Window System Interface) is a set of API calls that serve a similar purpose as EGL does for OpenGL & OpenGL ES or GLX for OpenGL on X11. Vulkan WSI includes support for Wayland from day one: VK_USE_PLATFORM_WAYLAND_KHR. Vulkan clients can run on unmodified Wayland servers, including Weston, GENIVI LayerManager, Mutter / GNOME Shell, Enlightenment, and more. The WSI allows applications to discover the different GPUs on the system, and display the results of GPU rendering to a window system.[121]
  • Waydroid, a container for Android applications to run on Linux distributions using Wayland and Anbox

Mobile and embedded hardware edit

 
Weston running on postmarketOS

Mobile and embedded hardware supporting Wayland includes the following:

History edit

 
Wayland uses direct rendering over EGL.

Kristian Høgsberg, a Linux graphics and X.Org developer who previously worked on AIGLX and DRI2, started Wayland as a spare-time project in 2008 while working for Red Hat.[129][130][131][132] His stated goal was a system in which "every frame is perfect, by which I mean that applications will be able to control the rendering enough that we'll never see tearing, lag, redrawing or flicker." Høgsberg was driving through the town of Wayland, Massachusetts when the underlying concepts "crystallized", hence the name (Weston and Maynard are also nearby towns in the same area, continuing the reference).[131][133]

In October 2010, Wayland became a freedesktop.org project.[134][135] As part of the migration the prior Google Group was replaced by the wayland-devel mailing list as the project's central point of discussion and development.

The Wayland client and server libraries were initially released under the MIT License,[136] while the reference compositor Weston and some example clients used the GNU General Public License version 2.[137] Later all the GPL code was relicensed under the MIT license "to make it easier to move code between the reference implementation and the actual libraries".[138] In 2015 it was discovered that the license text used by Wayland was a slightly different and older version of the MIT license, and the license text was updated to the current version used by the X.Org project (known as MIT Expat License).[5]

Wayland works with all Mesa-compatible drivers with DRI2 support[119] as well as Android drivers via the Hybris project.[139][140][141]

Releases edit

Major Wayland and Weston releases[142]
Version Date Main features
Wayland Weston
Old version, no longer maintained: 0.85 9 February 2012[143] First release.
Old version, no longer maintained: 0.95 24 July 2012[144] Began API stabilization.
Old version, no longer maintained: 1.0 22 October 2012[145][146] Stable wayland-client API.
Old version, no longer maintained: 1.1 15 April 2013[147][148] Software rendering.[62] FBDEV, RDP backends.
Old version, no longer maintained: 1.2 12 July 2013[149][150] Stable wayland-server API. Color management. Subsurfaces. Raspberry Pi backend.
Old version, no longer maintained: 1.3 11 October 2013[151] More pixel formats. Support for language bindings. Android driver support via libhybris.
Old version, no longer maintained: 1.4 23 January 2014[26] New wl_subcompositor and wl_subsurface interfaces. Multiple framebuffer formats. logind support for rootless Weston.
Old version, no longer maintained: 1.5 20 May 2014[68] libinput. Fullscreen shell.
Old version, no longer maintained: 1.6 19 September 2014[152] libinput by default.
Old version, no longer maintained: 1.7 14 February 2015[153][154] Support for the Wayland presentation extension and for surface roles. IVI shell protocol.
Old version, no longer maintained: 1.8 2 June 2015[155][156] Separated headers for core and generated protocol. Repaint scheduling. Named outputs. Output transformations. Surface-shooting API.
Old version, no longer maintained: 1.9 21 September 2015[157][158] Updated license. Updated license. New test framework. Triple-head DRM compositor. linux_dmabuf extension.
Old version, no longer maintained: 1.10 17 February 2016[159][160] Drag-and-drop functionality, grouped pointer events.[161] Video 4 Linux 2, touch input, debugging improvements.[162]
Old version, no longer maintained: 1.11 1 June 2016[163][164] New backup loading routine, new setup logic. Proxy wrappers, shared memory changes, Doxygen-generated HTML docs.
Old version, no longer maintained: 1.12 21 September 2016[165][166] Debugging support improved. libweston and libweston-desktop. Pointer locking and confinement. Relative pointer support.
Old version, no longer maintained: 1.13 24 February 2017[167][168] The ABI of Weston has been changed, thus the new version was named 2.0.0 rather than 1.13.0.
Old version, no longer maintained: 1.14 8 August 2017[169][170] Weston 3.0.0 was released at the same time.
Old version, no longer maintained: 1.15 9 April 2018[171][172] Weston 4.0.0 was released at the same time.
Old version, no longer maintained: 1.16 24 August 2018[173][174] Weston 5.0.0 was released at the same time.
Old version, no longer maintained: 1.17 20 March 2019[175][176] Weston 6.0.0 was released at the same time.
Old version, no longer maintained: 1.18 11 February 2020[177][178] Weston 7.0.0 was released on 2019-08-23.
Weston 8.0.0[179] was released on 2020-01-24.
Weston 9.0.0[180] was released on 2020-09-04.
Old version, no longer maintained: 1.19 27 January 2021[181]
Old version, no longer maintained: 1.20 9 December 2021[182][183] Weston 10.0.0 was released on 2022-02-01.
Weston 10.0.4[184] was released on 2023-05-17.
Old version, no longer maintained: 1.21 30 June 2022[185][186] Weston 11.0.0 was released on 2022-09-22.
Weston 11.0.2[187] was released on 2023-05-17.
Current stable version: 1.22 4 April 2023[2][188] Weston 12.0.0 was released on 2023-05-17.
Weston 12.0.1[189] was released on 2023-05-25.
Weston 12.0.2[3] was released on 2023-08-02.
Future release: 1.23
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release

See also edit

References edit

  1. ^ Høgsberg, Kristian (30 September 2008). "Initial commit". from the original on 1 April 2020. Retrieved 3 January 2020.
  2. ^ a b Ser, Simon (4 April 2023). "[ANNOUNCE] wayland 1.22.0" (Mailing list). Retrieved 9 April 2023.
  3. ^ a b https://lists.freedesktop.org/archives/wayland-devel/2023-August/042923.html
  4. ^ "Wayland & Weston Compositor Ported To DragonFlyBSD - Phoronix". www.phoronix.com. from the original on 16 August 2016. Retrieved 20 July 2016.
  5. ^ a b c Harrington, Bryce (15 September 2015). "[ANNOUNCE] wayland 1.8.93". freedesktop.org (Mailing list). from the original on 25 October 2020. Retrieved 14 January 2020.
  6. ^ "wayland/wayland: root/COPYING". freedesktop.org. from the original on 11 November 2013. Retrieved 14 June 2015.
  7. ^ Larabel, Michael (10 June 2015). "Wayland's MIT License To Be Updated/Corrected". Phoronix.com. from the original on 25 April 2016. Retrieved 17 April 2016.
  8. ^ a b c "Wayland". Wayland project. from the original on 2 March 2011. Retrieved 9 May 2016.
  9. ^ Sengar, Shivam Singh (16 June 2018). "Wayland v/s Xorg : How Are They Similar & How Are They Different". secjuice. from the original on 23 September 2020. Retrieved 10 September 2020.
  10. ^ a b c Kerrisk, Michael (25 September 2012). "XDC2012: Graphics stack security". LWN.net. from the original on 28 March 2016. Retrieved 13 April 2016.
  11. ^ a b Peres, Martin (21 February 2014). "Wayland Compositors - Why and How to Handle Privileged Clients!". from the original on 10 March 2016. Retrieved 17 April 2016.
  12. ^ a b Graesslin, Martin (23 November 2015). "Looking at the security of Plasma/Wayland". from the original on 27 August 2022. Retrieved 18 April 2016.
  13. ^ a b c d e "Wayland FAQ". Wayland project. from the original on 2 April 2016. Retrieved 9 May 2016.
  14. ^ Michael Larabel (20 May 2009). "The State Of The Wayland Display Server". Phoronix. from the original on 17 October 2021. Retrieved 17 October 2021.
  15. ^ Corbet, Jonathan (5 November 2010). "LPC: Life after X". LWN.net. from the original on 28 April 2016. Retrieved 17 April 2016.
  16. ^ Høgsberg, Kristian (9 November 2010). "Network transparency argument". from the original on 15 August 2020. Retrieved 14 January 2020. Wayland isn't a remote rendering API like X, but that doesn't exclude network transparency. Clients render into a shared buffer and then have to tell the compositor (...) what they changed. The compositor can then send the new pixels in that region out over the network. The Wayland protocol is already violently asynchronous, so it should be able to handle a bit of network lag gracefully. Remote fullscreen video viewing or gaming isn't going to work well, [but] I don't know any other display system that handles that well and transparently.
  17. ^ Larabel, Michael (18 August 2011). "Remote Wayland Server Project: Does It Work Yet?". Phoronix.com. from the original on 25 April 2016. Retrieved 17 April 2016.
  18. ^ Jackson, Adam (9 November 2010). "[Re:] Ubuntu moving towards Wayland". from the original on 8 March 2021. Retrieved 14 January 2020.
  19. ^ Stone, Daniel (28 January 2013). The real story behind Wayland and X (Speech). linux.conf.au 2013. Canberra. from the original on 10 August 2017. Retrieved 13 April 2016.
  20. ^ a b c Willis, Nathan (13 February 2013). "LCA: The ways of Wayland". LWN.net. from the original on 24 June 2016. Retrieved 19 May 2016.
  21. ^ Aleksandersen, Daniel (28 August 2017). "Remote desktop capabilities set to make a comeback in GNOME on Wayland". Ctrl.blog. from the original on 28 August 2017. Retrieved 29 August 2017.
  22. ^ a b "The Hello Wayland Tutorial". 8 July 2014. from the original on 13 July 2014. Retrieved 25 July 2014.
  23. ^ a b c d e f g h i j k l m n o Høgsberg, Kristian. "Wayland Documentation 1.3" (PDF). (PDF) from the original on 10 September 2015. Retrieved 16 March 2016.
  24. ^ a b Høgsberg, Kristian. "protocol/wayland.xml". FreeDesktop.org. from the original on 18 July 2014. Retrieved 25 July 2014.
  25. ^ a b Paalanen, Pekka (25 July 2014). "Wayland protocol design: object lifespan". from the original on 29 May 2016. Retrieved 6 April 2016.
  26. ^ a b Høgsberg, Kristian (24 January 2014). "Wayland and Weston 1.4 is out". wayland-devel mailing list. from the original on 5 April 2020. Retrieved 14 January 2020.
  27. ^ "xdg_shell: Adding a new shell protocol". freedesktop.org. 3 December 2013. from the original on 14 July 2014. Retrieved 14 June 2014.
  28. ^ "GENIVI/wayland-ivi-extension". GitHub. 17 November 2021. from the original on 24 March 2017. Retrieved 17 August 2016.
  29. ^ a b c Vervloesem, Koen (15 February 2012). "FOSDEM: The Wayland display server". LWN.net. from the original on 5 June 2016. Retrieved 9 May 2016.
  30. ^ Barnes, Jesse. "Introduction to Wayland" (PDF). Intel Open Source Technology Center. (PDF) from the original on 6 April 2016. Retrieved 18 April 2016. Does not include a rendering API – Clients use what they want and send buffer handles to the server
  31. ^ Paalanen, Pekka (21 November 2012). "On supporting Wayland GL clients and proprietary embedded platforms". from the original on 6 April 2016. Retrieved 6 April 2016. Buffer sharing works by creating a handle for a buffer, and passing that handle to another process which then uses the handle to make the GPU access again the same buffer.
  32. ^ Griffith, Eric (7 June 2013). "The Wayland Situation: Facts About X vs. Wayland". Phoronix.com. p. 2. from the original on 24 September 2015. Retrieved 17 April 2016.
  33. ^ a b "Wayland Architecture". Wayland project. from the original on 13 March 2016. Retrieved 9 May 2016.
  34. ^ Edge, Jake (11 April 2012). "LFCS 2012: X and Wayland". LWN.net. from the original on 30 April 2016. Retrieved 17 April 2016.
  35. ^ "Wayland/X Compositor Architecture By Example: Enlightenment DR19" (PDF). (PDF) from the original on 13 October 2017. Retrieved 18 April 2016.
  36. ^ a b Graesslin, Martin (7 February 2013). "Client Side Window Decorations and Wayland". from the original on 13 April 2016. Retrieved 17 April 2016.
  37. ^ "X.Org Security". X.Org Foundation. from the original on 22 December 2017. Retrieved 2 July 2017. The X server has long included an extension, SECURITY, which provides support for a simple trusted/untrusted connection model.
  38. ^ Wiggins, David P. (15 November 1996). "Security Extension Specification". X Consortium Standard. from the original on 8 December 2018. Retrieved 2 July 2017.
  39. ^ Walsh, Eamon F. (2009). "X Access Control Extension Specification". from the original on 9 January 2016. Retrieved 2 July 2017.
  40. ^ "Debian Moves To Non-Root X.Org Server By Default - Phoronix". www.phoronix.com. from the original on 2 April 2018. Retrieved 2 April 2018.
  41. ^ "Non root Xorg - Gentoo Wiki". wiki.gentoo.org. from the original on 2 April 2018. Retrieved 2 April 2018.
  42. ^ "X/Rootless - Ubuntu Wiki". wiki.ubuntu.com. from the original on 2 April 2018. Retrieved 2 April 2018.
  43. ^ "1078902 – Xorg without root rights". bugzilla.redhat.com. from the original on 2 April 2018. Retrieved 2 April 2018.
  44. ^ "X Clients under Wayland (XWayland)". Wayland project. from the original on 27 August 2022. Retrieved 18 July 2014.
  45. ^ "ANNOUNCE: xorg-server 1.16.0". freedesktop.org. 17 July 2014. from the original on 8 March 2021. Retrieved 14 January 2020.
  46. ^ a b Høgsberg, Kristian (3 January 2011). "Multiple backends for GTK". from the original on 27 August 2022. Retrieved 10 March 2016.
  47. ^ "QtWayland". Qt Wiki. from the original on 10 March 2016. Retrieved 9 March 2016.
  48. ^ "Full Wayland support in GTK". GNOME wiki. from the original on 7 September 2015. Retrieved 10 March 2016.
  49. ^ a b Larabel, Michael (30 November 2015). "Enlightenment 0.20 Arrives With Full Wayland Support & Better FreeBSD Support". Phoronix.com. from the original on 15 March 2016. Retrieved 17 April 2016.
  50. ^ "Wayland". www.enlightenment.org. from the original on 9 March 2016. Retrieved 8 March 2016.
  51. ^ "Plasma 5.21". KDE Community. 16 February 2021. from the original on 8 March 2021. Retrieved 9 March 2021.
  52. ^ "Index of /sources/mutter-wayland". download.gnome.org. from the original on 21 May 2014. Retrieved 27 May 2014.
  53. ^ "Bump version to 3.13.1". 30 April 2014.
  54. ^ "Sway". swaywm.org. from the original on 20 December 2018. Retrieved 20 December 2018.
  55. ^ "swaywm/wlroots". GitHub. from the original on 19 December 2018. Retrieved 28 October 2018.
  56. ^ "swaywm/sway". GitHub. from the original on 28 August 2019. Retrieved 28 October 2018.
  57. ^ "README". cgit.freedesktop.org. from the original on 8 March 2021. Retrieved 9 November 2019.
  58. ^ "README file from the Wayland source code repository". freedesktop.org. from the original on 14 January 2020. Retrieved 14 January 2020.
  59. ^ Larabel, Michael (16 February 2013). "Wayland Begins Porting Process To FreeBSD". Phoronix.com. from the original on 25 April 2016. Retrieved 17 April 2016.
  60. ^ "Adding Content protection support in drm-backend (!48) · Merge Requests · wayland / weston". GitLab. 6 November 2018. from the original on 27 August 2022. Retrieved 27 October 2019.
  61. ^ Paalanen, Pekka (10 March 2012). "What does EGL do in the Wayland stack". from the original on 12 October 2016. Retrieved 19 May 2016.
  62. ^ a b Larabel, Michael (6 January 2013). "A Software-Based Pixman Renderer For Wayland's Weston". Phoronix.com. from the original on 25 April 2016. Retrieved 17 April 2016.
  63. ^ Høgsberg, Kristian (9 December 2010). "Blender3D & cursor clamping". from the original on 25 October 2020. Retrieved 14 January 2020.
  64. ^ a b "[RFC weston] remote access interface module". freedesktop.org. 18 October 2013. from the original on 25 October 2020. Retrieved 14 January 2020.
  65. ^ "Maynard announcement". 16 April 2014. from the original on 8 March 2017. Retrieved 16 April 2014.
  66. ^ a b "Raspberry Pi Case Study". Collabora. from the original on 1 September 2013. Retrieved 9 August 2013.
  67. ^ a b "Wayland preview". Raspberry Pi. from the original on 9 February 2014. Retrieved 9 August 2013.
  68. ^ a b Høgsberg, Kristian (20 May 2014). "Wayland and Weston 1.5.0 is released". wayland-devel mailing list. from the original on 19 October 2019. Retrieved 14 January 2020.
  69. ^ Ådahl, Jonas (12 November 2013). "[RFC] Common input device library". Wayland mailing list. from the original on 25 October 2020. Retrieved 14 January 2020.
  70. ^ "libinput". Freedesktop.org. from the original on 19 April 2014. Retrieved 21 May 2014.
  71. ^ Hutterer, Peter (8 October 2014). Consolidating the input stacks with libinput (Speech). The X.Org Developer Conference 2014. Bordeaux. from the original on 1 November 2020. Retrieved 14 January 2020.
  72. ^ Hutterer, Peter (22 February 2015). "libinput: the road to 1.0". from the original on 25 October 2020. Retrieved 9 November 2019.
  73. ^ "Libinput support added to Touchpad KCM". 22 February 2015. from the original on 24 February 2015. Retrieved 24 February 2015.
  74. ^ Goede, Hans de (23 February 2015). "Libinput now enabled as default xorg driver for F-22 workstation installs". from the original on 24 February 2015. Retrieved 24 February 2015.
  75. ^ Hutterer, Peter (24 September 2014). "libinput - a common input stack for Wayland compositors and X.Org drivers". from the original on 7 April 2016. Retrieved 17 April 2016.
  76. ^ de Goede, Hans (1 February 2015). "Replacing xorg input - Drivers with libinput" (PDF). (PDF) from the original on 22 November 2021. Retrieved 18 April 2016.
  77. ^ a b Dodier-Lazaro, Steve; Peres, Martin (9 October 2014). Security in Wayland-based Desktop Environments: Privileged Clients, Authorization, Authentication and Sandboxing! (Speech). The X.Org Developer Conference 2014. Bordeaux. from the original on 9 April 2016. Retrieved 18 April 2016.
  78. ^ "Changes/WaylandByDefault - Fedora Project Wiki". fedoraproject.org. from the original on 27 December 2015. Retrieved 9 November 2020.
  79. ^ "ReleaseNotes for Ubuntu 17.10". Canonical. from the original on 24 November 2017. Retrieved 10 November 2017.
  80. ^ "Ubuntu 18.04 will revert to long-in-the-tooth Xorg". from the original on 29 January 2018. Retrieved 28 January 2018.
  81. ^ "Bionic Beaver 18.04 LTS to use Xorg by default". Canonical. from the original on 18 February 2018. Retrieved 18 February 2018.
  82. ^ "Ubuntu 21.04 is here". Canonical Ubuntu Blog. from the original on 22 April 2021. Retrieved 14 June 2021.
  83. ^ "Release notes for Red Hat Enterprise Linux 8.0". Red Hat Customer Portal. from the original on 25 November 2020. Retrieved 25 December 2020.
  84. ^ "NewInBuster - Debian Wiki". wiki.debian.org. from the original on 25 September 2019. Retrieved 15 July 2019.
  85. ^ "Slackware ChangeLogs". Slackware Linux. from the original on 30 January 2020. Retrieved 26 February 2020.
  86. ^ "Manjaro 20.2 Nibia got released". 3 December 2020. from the original on 4 December 2020. Retrieved 3 December 2020.
  87. ^ "Wayland Live OS Is Now Based On Debian Testing, Working KDE Wayland Support". Phoronix. from the original on 11 August 2019. Retrieved 14 January 2020.
  88. ^ "RebeccaBlackOS". Sourceforge. from the original on 25 November 2016. Retrieved 11 October 2016.
  89. ^ "Trying Out Wayland With Rebecca Black". Phoronix. from the original on 18 May 2020. Retrieved 14 January 2020.
  90. ^ "New Wayland Live CD Has A Lot Of Features". Phoronix. from the original on 18 May 2020. Retrieved 14 January 2020.
  91. ^ Bassi, Emmanuele (31 January 2011). "ANNOUNCE: Clutter 1.6.0 (stable)". clutter-announce (Mailing list). from the original on 10 March 2016. Retrieved 9 March 2016.
  92. ^ Bradford, Rob (16 December 2011). "Clutter & Cogl Wayland update". Retrieved 9 March 2016. The Clutter client side support is basically complete[permanent dead link]
  93. ^ Bassi, Emmanuele (24 September 2013). "ANNOUNCE: Clutter 1.16.0 (stable)". clutter-announce (Mailing list). from the original on 10 March 2016. Retrieved 9 March 2016.
  94. ^ . Archived from the original on 29 March 2013. Retrieved 6 March 2013.
  95. ^ "GTK Roadmap". from the original on 13 March 2016. Retrieved 8 March 2016.
  96. ^ Lantinga, Sam (8 March 2014). "SDL 2.0.2 RELEASED!". SDL Project. from the original on 15 March 2014. Retrieved 18 March 2014.
  97. ^ Larabel, Michael (9 January 2016). "SDL 2.0.4 Was Quietly Released Last Week With Wayland & Mir By Default". Phoronix.com. from the original on 16 March 2016. Retrieved 17 April 2016.
  98. ^ Berglund, Camilla (8 April 2014). "Implementation for Wayland · Issue #106 · glfw/glfw · GitHub". GitHub. from the original on 27 August 2022. Retrieved 14 August 2014.
  99. ^ "FreeGLUT: Implement initial Wayland support". GitHub. from the original on 10 November 2020. Retrieved 7 April 2015.
  100. ^ "GNOME Initiatives - Wayland". GNOME Wiki. from the original on 7 March 2016. Retrieved 8 March 2016.
  101. ^ "KWin/Wayland". KDE Community Wiki. from the original on 10 March 2016. Retrieved 8 March 2016.
  102. ^ "Enlightenment - Wayland". Enlightenment.org. from the original on 9 March 2016. Retrieved 8 March 2016.
  103. ^ "Enlightenment DR 0.20.0 Release". Enlightenment.org. from the original on 21 June 2018. Retrieved 8 March 2016.
  104. ^ "The Enlightenment of Wayland". FOSDEM.org. from the original on 9 March 2016. Retrieved 8 March 2016.
  105. ^ "ReleasePlanning/FeaturesPlans". GNOME Project. from the original on 31 May 2015. Retrieved 31 May 2015.
  106. ^ "A Look At The Exciting Features/Improvements Of GNOME 3.22". Phoronix. from the original on 12 August 2020. Retrieved 14 January 2020.
  107. ^ "GNOME Lands Mainline NVIDIA Wayland Support Using EGLStreams". Phoronix. from the original on 8 August 2019. Retrieved 14 January 2020.
  108. ^ "Plasma's Road to Wayland". 25 July 2014. from the original on 27 July 2014. Retrieved 25 July 2014.
  109. ^ Larabel, Michael (14 June 2013). "KDE 4.11 Beta Released, Works On Wayland". Phoronix.com. from the original on 25 April 2016. Retrieved 17 April 2016.
  110. ^ Graesslin, Martin (29 June 2015). "Four years later". from the original on 31 March 2016. Retrieved 17 April 2016.
  111. ^ Dawe, Liam (28 July 2020). "KDE Plasma 5.20 will properly support screen recording on Wayland and more". gamingonlinux.com. from the original on 27 August 2022. Retrieved 10 September 2020.
  112. ^ Schaller, Christian (3 July 2014). "Wayland in Fedora Update". blogs.gnome.org. from the original on 1 May 2016. Retrieved 17 April 2016.
  113. ^ . 8 July 2014. Archived from the original on 14 July 2014.
  114. ^ "RealVNC Wayland developer preview email". freedesktop.org. 9 July 2014. from the original on 25 October 2020. Retrieved 14 January 2020.
  115. ^ . Posterous. 2 April 2013. Archived from the original on 17 May 2013. Retrieved 14 October 2013.
  116. ^ "More Maliit Keyboard Improvements: QtQuick2". Murray's Blog. 2 April 2013. from the original on 13 October 2013. Retrieved 14 October 2013.
  117. ^ . Archived from the original on 11 June 2013. Retrieved 14 September 2013.
  118. ^ "wlterm". Freedesktop.org. from the original on 14 July 2014. Retrieved 8 July 2014.
  119. ^ a b Hillesley, p. 3.
  120. ^ "Eclipse now runs on Wayland". 18 August 2014. from the original on 23 August 2014. Retrieved 17 September 2014.
  121. ^ Stone, Daniel (16 February 2016). "Vulkan 1.0 specification released with day-one support for Wayland". from the original on 24 June 2016. Retrieved 27 February 2016.
  122. ^ . GENIVI Alliance. Archived from the original on 1 February 2014. Retrieved 15 July 2013.
  123. ^ "The First Jolla Smartphone Runs With Wayland". LinuxG.net. 14 July 2013. from the original on 28 June 2014. Retrieved 8 October 2013.
  124. ^ VDVsx [@VDVsx] (13 July 2013). "#sailfishos main components diagram. #Qt5 #Wayland #JollaHQ #Akademy" (Tweet) – via Twitter.
  125. ^ Jolla [@JollaHQ] (13 July 2013). "@faenil @PeppeLaKappa @VDVsx our first Jolla will ship with wayland, yes" (Tweet) – via Twitter.
  126. ^ "IVI/IVI Setup". Tizen Wiki. from the original on 10 February 2017. Retrieved 8 April 2013.
  127. ^ VanCutsem, Geoffroy (10 July 2013). "[IVI] Tizen IVI 3.0-M1 released". IVI (Mailing list). from the original on 2 October 2013. Retrieved 13 July 2013.
  128. ^ Amadeo, Ron (12 May 2017). "The Samsung Z4 is Tizen's new flagship smartphone". Ars Technica. from the original on 13 May 2017. Retrieved 13 May 2017.
  129. ^ Høgsberg, Kristian (3 November 2008). "Premature publicity is better than no publicity". from the original on 28 March 2016. Retrieved 6 April 2016.
  130. ^ "Interview: Kristian Høgsberg". FOSDEM Archive. 29 January 2012. from the original on 4 March 2016. Retrieved 8 March 2016.
  131. ^ a b Hillesley, Richard (13 February 2012). "Wayland - Beyond X". The H Open. Heise Media UK. from the original on 6 December 2013. Retrieved 8 March 2016.
  132. ^ Høgsberg, Kristian. . Linux Plumbers Conference, 2009. Archived from the original on 11 August 2017.
  133. ^ Jenkins, Evan (22 March 2011). "The Linux graphics stack from X to Wayland". Ars Technica. from the original on 10 April 2016. Retrieved 17 April 2016.
  134. ^ Larabel, Michael (29 October 2010). "Wayland Becomes A FreeDesktop.org Project". Phoronix.com. from the original on 14 April 2016. Retrieved 17 April 2016.
  135. ^ Høgsberg, Kristian (29 October 2010). "Moving to freedesktop.org". from the original on 9 November 2012. Retrieved 31 July 2013.
  136. ^ Høgsberg, Kristian (3 December 2008). "Wayland is now under MIT license". wayland-display-server (Mailing list). from the original on 9 November 2012. Retrieved 8 March 2016.
  137. ^ Høgsberg, Kristian (22 November 2010). "Wayland license clarification". wayland-devel (Mailing list). from the original on 9 March 2016. Retrieved 8 March 2016.
  138. ^ Høgsberg, Kristian (19 September 2011). "License update". wayland-devel (Mailing list). from the original on 29 April 2016. Retrieved 8 March 2016.
  139. ^ Munk, Carsten (11 April 2013). "Wayland utilizing Android GPU drivers on glibc based systems, Part 1". Mer Project. from the original on 19 April 2013. Retrieved 3 July 2013.
  140. ^ Munk, Carsten (8 June 2013). "Wayland utilizing Android GPU drivers on glibc based systems, Part 2". Mer Project. from the original on 24 October 2013. Retrieved 3 July 2013.
  141. ^ Larabel, Michael (11 April 2013). "Jolla Brings Wayland Atop Android GPU Drivers". Phoronix.com. from the original on 25 April 2016. Retrieved 17 April 2016.
  142. ^ "Wayland". Wayland.freedesktop.org. from the original on 7 July 2013. Retrieved 15 July 2013.
  143. ^ Høgsberg, Kristian (9 February 2012). "[ANNOUNCE] Wayland and Weston 0.85.0 released". wayland-devel mailing list. from the original on 14 January 2020. Retrieved 14 January 2020.
  144. ^ Høgsberg, Kristian (24 July 2012). "Wayland and Weston 0.95.0 released". wayland-devel mailing list. from the original on 25 October 2020. Retrieved 14 January 2020.
  145. ^ Høgsberg, Kristian (22 October 2012). "Wayland and Weston 1.0". wayland-devel mailing list. from the original on 23 August 2019. Retrieved 14 January 2020.
  146. ^ Scherschel, Fabian (23 October 2012). "Wayland's 1.0 milestone fixes graphics protocol". The H Open. Heise Media UK. from the original on 7 December 2013. Retrieved 17 April 2016.
  147. ^ Larabel, Michael (16 April 2013). "Wayland 1.1 Officially Released With Weston 1.1". Phoronix.com. from the original on 25 April 2016. Retrieved 17 April 2016.
  148. ^ Høgsberg, Kristian (15 April 2013). "1.1 Released". wayland-devel mailing list. from the original on 27 May 2019. Retrieved 14 January 2020.
  149. ^ Larabel, Michael (13 July 2013). "Wayland 1.2.0 Released, Joined By Weston Compositor". Phoronix.com. from the original on 14 April 2016. Retrieved 17 April 2016.
  150. ^ Høgsberg, Kristian (12 July 2013). "Wayland and Weston 1.2.0 released". wayland-devel mailing list. from the original on 25 June 2019. Retrieved 14 January 2020.
  151. ^ Høgsberg, Kristian (11 October 2013). "Wayland and Weston 1.3 releases are out". wayland-devel mailing list. from the original on 8 August 2020. Retrieved 11 April 2020.
  152. ^ Paalanen, Pekka (19 September 2014). "Wayland and Weston 1.6.0 released". wayland-devel mailing list. from the original on 27 May 2019. Retrieved 14 January 2020.
  153. ^ Harrington, Bryce (14 February 2015). "[ANNOUNCE] wayland 1.7.0". wayland-devel mailing list. from the original on 5 April 2020. Retrieved 14 January 2020.
  154. ^ Harrington, Bryce (14 February 2015). "[ANNOUNCE] weston 1.7.0". wayland-devel mailing list. from the original on 5 April 2020. Retrieved 14 January 2020.
  155. ^ Harrington, Bryce (2 June 2015). "[ANNOUNCE] wayland 1.8.0". wayland-devel mailing list. from the original on 15 August 2020. Retrieved 14 January 2020.
  156. ^ Harrington, Bryce (2 June 2015). "[ANNOUNCE] weston 1.8.0". wayland-devel mailing list. from the original on 15 August 2020. Retrieved 14 January 2020.
  157. ^ Harrington, Bryce (21 September 2015). "[ANNOUNCE] wayland 1.9.0". wayland-devel (Mailing list). from the original on 25 October 2020. Retrieved 14 January 2020.
  158. ^ Harrington, Bryce (21 September 2015). "[ANNOUNCE] weston 1.9.0". wayland-devel (Mailing list). from the original on 21 September 2020. Retrieved 14 January 2020.
  159. ^ Harrington, Bryce (17 February 2016). "[ANNOUNCE] wayland 1.10.0". wayland-devel (Mailing list). from the original on 17 February 2016. Retrieved 17 February 2016.
  160. ^ Harrington, Bryce (17 February 2016). "[ANNOUNCE] weston 1.10.0". wayland-devel (Mailing list). from the original on 24 February 2016. Retrieved 17 February 2016.
  161. ^ Nestor, Marius (18 February 2016). "Wayland 1.10 Display Server Officially Released, Wayland 1.11 Arrives in May 2016". Softpedia. from the original on 14 January 2020. Retrieved 14 January 2020.
  162. ^ Larabel, Michael (16 February 2016). "Wayland 1.10 Officially Released". Phoronix.com. from the original on 21 June 2017. Retrieved 17 April 2016.
  163. ^ Harrington, Bryce (1 June 2016). "[ANNOUNCE] wayland 1.11.0". wayland-devel (Mailing list). from the original on 1 June 2016. Retrieved 1 June 2016.
  164. ^ Harrington, Bryce (1 June 2016). "[ANNOUNCE] weston 1.11.0". wayland-devel (Mailing list). from the original on 8 October 2016. Retrieved 1 June 2016.
  165. ^ Harrington, Bryce (21 September 2016). "[ANNOUNCE] wayland 1.12.0". wayland-devel (Mailing list). from the original on 2 April 2017. Retrieved 21 September 2016.
  166. ^ Harrington, Bryce (21 September 2016). "[ANNOUNCE] weston 1.12.0". wayland-devel (Mailing list). from the original on 8 October 2016. Retrieved 21 September 2016.
  167. ^ Harrington, Bryce (21 February 2017). "[ANNOUNCE] wayland 1.13.0". wayland-devel (Mailing list). from the original on 24 February 2017. Retrieved 30 April 2017.
  168. ^ Harrington, Bryce (25 February 2017). "[ANNOUNCE] weston 2.0.0". wayland-devel (Mailing list). from the original on 2 March 2017. Retrieved 30 April 2017.
  169. ^ Harrington, Bryce (8 August 2017). "[ANNOUNCE] wayland 1.14.0". wayland-devel (Mailing list). from the original on 20 October 2018. Retrieved 25 March 2018.
  170. ^ Harrington, Bryce (8 August 2017). "[ANNOUNCE] weston 3.0.0". wayland-devel (Mailing list). from the original on 20 October 2018. Retrieved 25 March 2018.
  171. ^ Foreman, Derek (9 April 2018). "[ANNOUNCE] wayland 1.15.0". wayland-devel (Mailing list). from the original on 10 April 2018. Retrieved 15 April 2018.
  172. ^ Foreman, Derek (9 April 2018). "[ANNOUNCE] weston 4.0.0". wayland-devel (Mailing list). from the original on 10 April 2018. Retrieved 15 April 2018.
  173. ^ Foreman, Derek (24 August 2018). "[ANNOUNCE] wayland 1.16.0". wayland-devel (Mailing list). from the original on 28 August 2018. Retrieved 30 November 2018.
  174. ^ Foreman, Derek (24 August 2018). "[ANNOUNCE] weston 5.0.0". wayland-devel (Mailing list). from the original on 25 August 2018. Retrieved 30 November 2018.
  175. ^ Foreman, Derek (28 March 2019). "[ANNOUNCE] wayland 1.17.0" (Mailing list). from the original on 25 March 2019. Retrieved 17 June 2019.
  176. ^ Foreman, Derek (21 March 2019). "[ANNOUNCE] weston 6.0.0" (Mailing list). from the original on 31 March 2019. Retrieved 17 June 2019.
  177. ^ Ser, Simon (11 February 2020). "[ANNOUNCE] wayland 1.18" (Mailing list). from the original on 1 April 2021. Retrieved 12 February 2020.
  178. ^ Ser, Simon (23 August 2019). "[ANNOUNCE] weston 7.0.0" (Mailing list). from the original on 25 August 2019. Retrieved 22 October 2019.
  179. ^ Ser, Simon (24 January 2020). "[ANNOUNCE] weston 8.0.0" (Mailing list). Retrieved 12 February 2020.
  180. ^ "[ANNOUNCE] weston 9.0.0". 4 September 2020. from the original on 29 September 2020. Retrieved 30 October 2020.
  181. ^ Ser, Simon (27 January 2021). "[ANNOUNCE] wayland 1.19.0" (Mailing list). from the original on 1 February 2021. Retrieved 27 January 2021.
  182. ^ Ser, Simon (27 January 2021). "[ANNOUNCE] wayland 1.20.0" (Mailing list). from the original on 11 December 2021. Retrieved 27 January 2021.
  183. ^ Ser, Simon (1 February 2022). "[ANNOUNCE] weston 10.0.0" (Mailing list). from the original on 4 February 2022. Retrieved 12 February 2022.
  184. ^ "[ANNOUNCE] weston 10.0.4". 17 May 2023.
  185. ^ "[ANNOUNCE] wayland 1.21.0". 30 June 2022.
  186. ^ "[ANNOUNCE] weston 11.0.0". 22 September 2022.
  187. ^ "[ANNOUNCE] weston 11.0.2". 17 May 2023.
  188. ^ "[ANNOUNCE] weston 12.0.0". 17 May 2023.
  189. ^ "[ANNOUNCE] weston 12.0.1". 25 May 2023.

External links edit

  • Official website

wayland, protocol, wayland, communication, protocol, that, specifies, communication, between, display, server, clients, well, library, implementation, that, protocol, display, server, using, wayland, protocol, called, wayland, compositor, because, additionally. Wayland is a communication protocol that specifies the communication between a display server and its clients as well as a C library implementation of that protocol 8 A display server using the Wayland protocol is called a Wayland compositor because it additionally performs the task of a compositing window manager WaylandWeston the reference implementation of a Wayland server Original author s Kristian HogsbergDeveloper s freedesktop org et al Initial release30 September 2008 15 years ago 2008 09 30 1 Stable releaseWayland 1 22 2 Weston 12 0 2 3 4 April 2023 7 months ago 2023 04 04 Repositorygitlab wbr freedesktop wbr org wbr wayland wbr waylandWritten inCOperating systemOfficial LinuxUnofficial NetBSD FreeBSD DragonFly BSD 4 TypeWindowing systemDisplay serverLicenseMIT License 5 6 7 Websitewayland wbr freedesktop wbr orgWayland is developed by a group of volunteers initially led by Kristian Hogsberg as a free and open source community driven project with the aim of replacing the X Window System with a modern secure 9 10 11 12 and simpler windowing system for Linux and other Unix like operating systems 8 13 The project s source code is published under the terms of the MIT License a permissive free software licence 13 5 As part of its efforts the Wayland project also develops a reference implementation of a Wayland compositor called Weston 8 Contents 1 Overview 2 Software architecture 2 1 Protocol architecture 2 2 Protocol overview 2 2 1 Wayland core interfaces 2 2 2 Wayland extension interfaces 2 3 Extension protocols to the core protocol 2 3 1 XDG Shell protocol 2 3 2 IVI Shell protocol 2 4 Rendering model 3 Comparison with other window systems 3 1 Differences between Wayland and X 3 2 Compatibility with X 4 Wayland compositors 4 1 Weston 4 1 1 Maynard 4 2 libinput 4 3 Wayland Security Module 5 Adoption 5 1 Desktop Linux distributions 5 2 Toolkit support 5 3 Desktop environments 5 4 Other software 5 5 Mobile and embedded hardware 6 History 6 1 Releases 7 See also 8 References 9 External linksOverview edit nbsp The evdev module of the Linux kernel gets an event and sends it to the Wayland compositor The Wayland compositor looks through its scenegraph to determine which window should receive the event The scenegraph corresponds to what is on screen and the Wayland compositor understands the transformations that it may have applied to the elements in the scenegraph Thus the Wayland compositor can pick the right window and transform the screen coordinates to window local coordinates by applying the inverse transformations The types of transformation that can be applied to a window is only restricted to what the compositor can do as long as it can compute the inverse transformation for the input events As in the X case when the client receives the event it updates the UI in response But in the Wayland case the rendering happens by the client via EGL and the client just sends a request to the compositor to indicate the region that was updated The Wayland compositor collects damage requests from its clients and then re composites the screen The compositor can then directly issue an ioctl to schedule a pageflip with KMS The Wayland Display Server project was started by Red Hat developer Kristian Hogsberg in 2008 14 Beginning around 2010 Linux desktop graphics have moved from having a pile of rendering interfaces all talking to the X server which is at the center of the universe towards putting the Linux kernel and its components i e Direct Rendering Infrastructure DRI Direct Rendering Manager DRM in the middle with window systems like X and Wayland off in the corner This will be a much simplified graphics system offering more flexibility and better performance 15 Hogsberg could have added an extension to X as many recent projects have done but preferred to push X out of the hotpath between clients and the hardware for reasons explained in the project s FAQ 13 What s different now is that a lot of infrastructure has moved from the X server into the kernel memory management command scheduling mode setting or libraries cairo pixman freetype fontconfig pango etc and there is very little left that has to happen in a central server process An X server has a tremendous amount of functionality that you must support to claim to speak the X protocol yet nobody will ever use this This includes code tables glyph rasterization and caching XLFDs seriously XLFDs and the entire core rendering API that lets you draw stippled lines polygons wide arcs and many more state of the 1980s style graphics primitives For many things we ve been able to keep the X org server modern by adding extension such as XRandR XRender and COMPOSITE With Wayland we can move the X server and all its legacy technology to an optional code path Getting to a point where the X server is a compatibility option instead of the core rendering system will take a while but we ll never get there if we don t plan for it Wayland consists of a protocol and a reference implementation named Weston The project is also developing versions of GTK and Qt that render to Wayland instead of to X Most applications are expected to gain support for Wayland through one of these libraries without modification to the application Initial versions of Wayland have not provided network transparency though Hogsberg noted in 2010 that network transparency is possible 16 It was attempted as a Google Summer of Code project in 2011 but was not successful 17 Adam Jackson has envisioned providing remote access to a Wayland application by either pixel scraping like VNC or getting it to send a rendering command stream across the network as in RDP SPICE or X11 18 As of early 2013 Hogsberg was experimenting with network transparency using a proxy Wayland server which sends compressed images to the real compositor 19 20 In August 2017 GNOME saw the first such pixel scraping VNC server implementation under Wayland 21 In modern Wayland compositors network transparency is handled in an xdg desktop portal implementation that implements the RemoteDesktop portal Many Wayland compositors also include an xdg desktop portal implementation for common tasks such as a native file picker for native applications and sandboxes such as Flatpak xdg desktop portal gtk is commonly used as a fallback filepicker screen recording network transparency screenshots color picking and other tasks that could be seen as needing user intervention and being security risks otherwise Note that xdg desktop portal is not Flatpak or Wayland specific and can be used with alternative packaging systems and windowing systems Software architecture editProtocol architecture edit nbsp In the Wayland protocol architecture a client and a compositor communicate through the Wayland protocol using the reference implementation libraries The Wayland protocol follows a client server model in which clients are the graphical applications requesting the display of pixel buffers on the screen and the server compositor is the service provider controlling the display of these buffers The Wayland reference implementation has been designed as a two layer protocol 22 A low level layer or wire protocol that handles the inter process communication between the two involved processes client and compositor and the marshalling of the data that they interchange This layer is message based and usually implemented using the kernel IPC services specifically Unix domain sockets in the case of Linux and Unix like operating systems 23 9 A high level layer built upon it that handles the information that client and compositor need to exchange to implement the basic features of a window system This layer is implemented as an asynchronous object oriented protocol 23 9 While the low level layer was written manually in C the high level layer is automatically generated from a description of the elements of the protocol stored in XML format 24 Every time the protocol description of this XML file changes the C source code that implements such protocol can be regenerated to include the new changes allowing a very flexible extensible and error proof protocol The reference implementation of Wayland protocol is split in two libraries a library to be used by Wayland clients called libwayland client and a library to be used by Wayland compositors called libwayland server 23 57 Protocol overview edit The Wayland protocol is described as an asynchronous object oriented protocol 23 9 Object oriented means that the services offered by the compositor are presented as a series of objects living on the same compositor Each object implements an interface which has a name a number of methods called requests as well as several associated events Every request and event has zero or more arguments each one with a name and a data type The protocol is asynchronous in the sense that requests do not have to wait for synchronized replies or ACKs avoiding round trip delay time and achieving improved performance The Wayland clients can make a request a method invocation on some object if the object s interface supports that request The client must also supply the required data for the arguments of such request This is the way the clients request services from the compositor The compositor in turn sends information back to the client by causing the object to emit events probably with arguments too These events can be emitted by the compositor as a response to a certain request or asynchronously subject to the occurrence of internal events such as one from an input device or state changes The error conditions are also signaled as events by the compositor 23 9 For a client to be able to make a request to an object it first needs to tell the server the ID number it will use to identify that object 23 9 There are two types of objects in the compositor global objects and non global objects Global objects are advertised by the compositor to the clients when they are created and also when they are destroyed while non global objects are usually created by other objects that already exist as part of their functionality 25 The interfaces and their requests and events are the core elements that define the Wayland protocol Each version of the protocol includes a set of interfaces along with their requests and events which are expected to be in any Wayland compositor Optionally a Wayland compositor may define and implement its own interfaces that support new requests and events thereby extending functionality beyond the core protocol 23 10 To facilitate changes to the protocol each interface contains a version number attribute in addition to its name this attribute allows for distinguishing variants of the same interface Each Wayland compositor exposes not only what interfaces are available but also the supported versions of those interfaces 23 12 Wayland core interfaces edit The interfaces of the current version of Wayland protocol are defined in the file protocol wayland xml of the Wayland source code 24 This is an XML file that lists the existing interfaces in the current version along with their requests events and other attributes This set of interfaces is the minimum required to be implemented by any Wayland compositor Some of the most basic interfaces of the Wayland protocol are 23 10 12 wl display the core global object a special object to encapsulate the Wayland protocol itself wl registry the global registry object in which the compositor registers all the global objects that it wants to be available to all clients wl compositor an object that represents the compositor and is in charge of combining the different surfaces into one output wl surface an object representing a rectangular area on the screen defined by a location size and pixel content wl buffer an object that when attached to a wl surface object provides its displayable content wl output an object representing the displayable area of a screen wl pointer wl keyboard wl touch objects representing different input devices like pointers or keyboards wl seat an object representing a seat a set of input output devices in multiseat configurationsA typical Wayland client session starts by opening a connection to the compositor using the wl display object This is a special local object that represents the connection and does not live within the server By using its interface the client can request the wl registry global object from the compositor where all the global object names live and bind those that the client is interested in Usually the client binds at least a wl compositor object from where it will request one or more wl surface objects to show the application output on the display 25 Wayland extension interfaces edit A Wayland compositor can define and export its own additional interfaces 23 10 This feature is used to extend the protocol beyond the basic functionality provided by the core interfaces and has become the standard way to implement Wayland protocol extensions Certain compositors can choose to add custom interfaces to provide specialized or unique features The Wayland reference compositor Weston used them to implement new experimental interfaces as a testbed for new concepts and ideas some of which later became part of the core protocol such as wl subsurface interface added in Wayland 1 4 26 Extension protocols to the core protocol edit XDG Shell protocol edit XDG Shell protocol see freedesktop org for XDG is an extended way to manage surfaces under Wayland compositors not only Weston The traditional way to manipulate maximize minimize fullscreen etc surfaces is to use the wl shell functions which are part of the core Wayland protocol and live in libwayland client An implementation of the xdg shell protocol on the contrary is supposed to be provided by the Wayland compositor So you will find the xdg shell client protocol h header in the Weston source tree xdg shell is a protocol aimed to substitute wl shell in the long term but will not be part of the Wayland core protocol It starts as a non stable API aimed to be used as a development place at first and once features are defined as required by several desktop shells it can be finally made stable It provides mainly two new interfaces xdg surface and xdg popup The xdg surface interface implements a desktop style window that can be moved resized maximized etc it provides a request for creating child parent relationship The xdg popup interface implements a desktop style popup menu an xdg popup is always transient for another surface and also has implicit grab 27 IVI Shell protocol edit IVI Shell is an extension to the Wayland core protocol targeting in vehicle infotainment IVI devices 28 Rendering model edit nbsp Wayland compositor and its clients use EGL to draw directly into the framebuffer X Org Server with XWayland and Glamor The Wayland protocol does not include a rendering API 23 7 13 29 30 2 Instead Wayland follows a direct rendering model in which the client must render the window contents to a buffer shareable with the compositor 23 7 For that purpose the client can choose to do all the rendering by itself use a rendering library like Cairo or OpenGL or rely on the rendering engine of high level widget libraries with Wayland support such as Qt or GTK The client can also optionally use other specialized libraries to perform specific tasks such as Freetype for font rendering The resulting buffer with the rendered window contents are stored in a wl buffer object The internal type of this object is implementation dependent The only requirement is that the content data must be shareable between the client and the compositor If the client uses a software CPU renderer and the result is stored in the system memory then client and compositor can use shared memory to implement the buffer communication without extra copies The Wayland protocol already natively provides this kind of shared memory buffer through the wl shm and wl shm pool interfaces 23 11 20 21 The drawback of this method is that the compositor may need to do additional work usually to copy the shared data to the GPU to display it which leads to slower graphics performance The most typical case is for the client to render directly into a video memory buffer using a hardware GPU accelerated API such as OpenGL OpenGL ES or Vulkan Client and compositor can share this GPU space buffer using a special handler to reference it 31 This method allows the compositor to avoid the extra data copy through itself of the main memory buffer client to compositor to GPU method resulting in faster graphics performance and is therefore the preferred one The compositor can further optimize the composition of the final scene to be shown on the display by using the same hardware acceleration API as an API client When rendering is completed in a shared buffer the Wayland client should instruct the compositor to present the rendered contents of the buffer on the display For this purpose the client binds the buffer object that stores the rendered contents to the surface object and sends a commit request to the surface transferring the effective control of the buffer to the compositor 22 Then the client waits for the compositor to release the buffer signaled by an event if it wants to reuse the buffer to render another frame or it can use another buffer to render the new frame and when the rendering is finished bind this new buffer to the surface and commit its contents 23 7 The procedure used for rendering including the number of buffers involved and their management is entirely under the client control 23 7 Comparison with other window systems editSee also Mir software architecture Differences between Wayland and X edit There are several differences between Wayland and X with regard to performance code maintainability and security 32 Architecture The composition manager is a separate additional feature in X while Wayland merges display server and compositor as a single function 33 29 Also it incorporates some of the tasks of the window manager which in X is a separate client side process 34 Compositing Compositing is optional in X but mandatory in Wayland Compositing in X is active that is the compositor must fetch all pixel data which introduces latency In Wayland compositing is passive which means the compositor receives pixel data directly from clients 35 8 11 Rendering The X server itself is able to perform rendering although it can also be instructed to display a rendered window sent by a client In contrast Wayland does not expose any API for rendering but delegates to clients such tasks including the rendering of fonts widgets etc 33 29 Window decorations are to be rendered on the client side e g by a graphics toolkit or on the server side by the compositor with the opt in xdg decoration protocol if the compositor chooses to implement such functionality 36 Security Wayland isolates the input and output of every window achieving confidentiality integrity and availability for both The original X design lacked these important security features 10 11 12 although some extensions have been developed trying to mitigate it 37 38 39 Also with the vast majority of the code running in the client less code needs to run with root privileges improving security 10 although multiple popular Linux distributions now allow the X server to be run without root privileges 40 41 42 43 Inter process communication The X server provides a basic communication method between X clients later extended by ICCCM conventions This X client to client communication is used by window managers and also to implement X sessions selections and drag and drop and other features The Wayland core protocol does not support communication between Wayland clients at all as the corresponding functionality if needed is regarded by the Wayland community as something which should be implemented by the desktop environments like KDE or GNOME or by a third party for example by using native IPC of the underlying operating system Networking The X Window System is an architecture that was designed at its core to run over a network Wayland does not offer network transparency by itself 13 however a compositor can implement any remote desktop protocol to achieve remote display In addition there is research into Wayland image streaming and compression that would provide remote frame buffer access similar to that of VNC 20 Compatibility with X edit XWayland is an X Server running as a Wayland client and thus is capable of displaying native X11 client applications in a Wayland compositor environment 44 This is similar to the way XQuartz runs X applications in macOS s native windowing system The goal of XWayland is to facilitate the transition from X Window System to Wayland environments providing a way to run unported applications in the meantime XWayland was mainlined into X Org Server version 1 16 45 Widget toolkits such as Qt5 and GTK3 can switch their graphical back end at run time 46 allowing users to choose at load time whether they want to run the application over X or over Wayland Qt 5 provides the platform command line option 47 to that effect whereas GTK 3 lets users select the desired GDK back end by setting the GDK BACKEND Unix environment variable 46 48 Wayland compositors edit nbsp Typical elements of a window X11 does not specify what software is responsible for rendering the window decoration whereas Wayland requires that they are drawn by the client but will provide opt in server side decorations with the xdg decoration protocol 36 nbsp Plasma 5 24 0 February 2022 on Wayland kwin wayland compositor under Arch LinuxMain article List of Wayland compositors Display servers that implement the Wayland display server protocol are also called Wayland compositors because they additionally perform the task of a compositing window manager Weston the reference implementation of a Wayland compositor Weston implements client side decorations Enlightenment claimed full Wayland support since version 0 20 49 but work is currently underway to land a complete Wayland compositor 50 KWin has nearly complete Wayland support as of 2021 51 Mutter maintained a separate branch for the integration of Wayland for GNOME 3 9 in September 2013 52 in the 3 13 1 release in 2014 the Wayland branch was merged into the main repository 53 Clayland a simple example Wayland compositor using Clutter Hyprland Hyprland is a dynamic tiling wayland compositor that offers unique features like smooth animations dynamic tiling and rounded corners Sway a tiling Wayland compositor and a drop in replacement for the i3 window manager for X11 54 Sway uses wlroots a modular Wayland implementation that functions as a base for several compositors 55 56 Weston edit Weston is the reference implementation of a Wayland compositor 57 also developed by the Wayland project It is written in C and published under the MIT License Weston has official support for only the Linux operating system due to Weston s dependence on certain features of the Linux kernel such as kernel mode setting Graphics Execution Manager GEM and udev which have not been implemented in other Unix like operating systems 58 When running on Linux handling of the input hardware relies on evdev while the handling of buffers relies on Generic Buffer Management GBM However in 2013 a prototype port of Weston to FreeBSD was announced 59 Weston supports High bandwidth Digital Content Protection HDCP 60 Weston relies on GEM to share application buffers between the compositor and applications It contains a plug in system of shells for common desktop features like docks and panels 20 Clients are responsible for the drawing of their window borders and their decorations For rendering Weston can use OpenGL ES 61 or the pixman library to do software rendering 62 The full OpenGL implementation is not used because on most current systems installing the full OpenGL libraries would also install GLX and other X Window System support libraries as dependencies 63 A remote access interface for Weston was proposed in October 2013 by a RealVNC employee 64 Maynard edit nbsp Maynard in January 2017 Maynard is a graphical shell and has been written as a plug in for Weston just as the GNOME Shell has been written as a plug in to Mutter 65 The Raspberry Pi Foundation in collaboration with Collabora released Maynard and work on improving performance and memory consumption 66 67 libinput edit nbsp libinput was created to consolidate the input stack across multiple Wayland compositors The Weston code for handling input devices keyboards pointers touch screens etc was split into its own separate library called libinput for which support was first merged in Weston 1 5 68 69 Libinput handles input devices for multiple Wayland compositors and also provides a generic X Org Server input driver It aims to provide one implementation for multiple Wayland compositors with a common way to handle input events while minimizing the amount of custom input code compositors need to include libinput provides device detection clarification needed via udev device handling input device event processing and abstraction 70 71 Version 1 0 of libinput followed version 0 21 and included support for tablets button sets and touchpad gestures This version will maintain stable API ABI 72 As GNOME GTK and KDE Frameworks 5 73 have mainlined the required changes Fedora 22 will replace X Org s evdev and Synaptics drivers with libinput 74 With version 1 16 the X Org Server obtained support for the libinput library in form of a wrapper called xf86 input libinput 75 76 Wayland Security Module edit Wayland Security Module is a proposition that resembles the Linux Security Module interface found in the Linux kernel 77 Some applications especially the ones related to accessibility require privileged capabilities that should work across different Wayland compositors Currently when applications under Wayland are generally unable to perform any sensitive tasks such as taking screenshots or injecting input events without going through xdg desktop portal or obtaining privileged access to the system Wayland Security Module is a way to delegate security decisions within the compositor to a centralized security decision engine 77 Adoption editThe Wayland protocol is designed to be simple so that additional protocols and interfaces need to be defined and implemented to achieve a holistic windowing system As of July 2014 update these additional interfaces were being worked on So while the toolkits already fully support Wayland the developers of the graphical shells are cooperating with the Wayland developers creating the necessary additional interfaces Desktop Linux distributions edit As of 2020 update most Linux distributions support Wayland out of the box Some notable examples are Fedora starting with version 25 released 22 November 2016 uses Wayland for the default GNOME 3 22 desktop session with X Org as a fallback if the graphics driver cannot support Wayland 78 Fedora uses Wayland as the default for KDE desktop session starting with version 34 released 27 April 2021 Ubuntu shipped with Wayland by default in Ubuntu 17 10 Artful Aardvark 79 However Ubuntu 18 04 LTS reverted to X Org by default due to several issues 80 81 Since Ubuntu 21 04 Wayland is the default again 82 Red Hat Enterprise Linux ships Wayland as the default session in version 8 released 7 May 2019 83 Debian ships Wayland as the default session for GNOME since version 10 released 6 July 2019 84 Slackware Linux included Wayland on 20 February 2020 85 for the development version current which became version 15 0 Manjaro ships Wayland as default in the Gnome edition of Manjaro 20 2 Nibia released 22 November 2020 86 Notable early adopter RebeccaBlackOS is a live USB Debian based 87 Linux distribution that allows a convenient way to try out a real Wayland desktop without having to make any modifications to the main operating system of the computer 88 It has been used since as early as 2012 to showcase Wayland 89 90 Toolkit support edit Toolkits supporting Wayland include the following Clutter has complete Wayland support 91 92 93 EFL has complete Wayland support except for selection 94 GTK 3 20 has complete Wayland support 95 Qt 5 has complete Wayland support and can be used to write both Wayland compositors and Wayland clients SDL support for Wayland debuted with the 2 0 2 release 96 and was enabled by default since version 2 0 4 97 GLFW 3 2 has Wayland support 98 FreeGLUT has initial Wayland support 99 Desktop environments edit Desktop environments in process of being ported from X to Wayland include GNOME 100 KDE Plasma 5 101 and Enlightenment 102 In November 2015 Enlightenment e20 was announced with full Wayland support 103 49 104 GNOME 3 20 was the first version to have a full Wayland session 105 GNOME 3 22 included much improved Wayland support across GTK Mutter and GNOME Shell 106 GNOME 3 24 shipped support for the proprietary NVidia drivers under Wayland 107 Wayland support for KDE Plasma was delayed until the release of Plasma 5 108 though previously KWin 4 11 got an experimental Wayland support 109 The version 5 4 of Plasma was the first with a Wayland session 110 During 2020 Klipper was ported to Wayland and the next 5 20 release in October 2020 has the goal to improve screen casting and recording 111 Other software edit Other software supporting Wayland includes the following Intelligent Input Bus is working on Wayland support it could be ready for Fedora 22 112 RealVNC published a Wayland developer preview in July 2014 64 113 114 Maliit is an input method framework that runs under Wayland 115 116 117 kmscon supports Wayland with wlterm 118 Mesa has Wayland support integrated 119 Eclipse was made to run on Wayland during a GSoC Project in 2014 120 The Vulkan WSI Window System Interface is a set of API calls that serve a similar purpose as EGL does for OpenGL amp OpenGL ES or GLX for OpenGL on X11 Vulkan WSI includes support for Wayland from day one VK USE PLATFORM WAYLAND KHR Vulkan clients can run on unmodified Wayland servers including Weston GENIVI LayerManager Mutter GNOME Shell Enlightenment and more The WSI allows applications to discover the different GPUs on the system and display the results of GPU rendering to a window system 121 Waydroid a container for Android applications to run on Linux distributions using Wayland and AnboxMobile and embedded hardware edit nbsp Weston running on postmarketOSMobile and embedded hardware supporting Wayland includes the following postmarketOS GENIVI Alliance The GENIVI Aliance now COVESA for in vehicle infotainment IVI supports Wayland 122 Raspberry Pi The Raspberry Pi Foundation in collaboration with Collabora released Maynard and work on improving performance and memory consumption 66 67 Jolla Smartphones from Jolla use Wayland It is also used as standard when Linux Sailfish OS is used with hardware from other vendors or when it is installed into Android devices by users 123 124 125 Tizen Tizen up to 2 x supports Wayland in in vehicle infotainment IVI setups 126 and from 3 0 onward defaults to Wayland 127 128 History edit nbsp Wayland uses direct rendering over EGL Kristian Hogsberg a Linux graphics and X Org developer who previously worked on AIGLX and DRI2 started Wayland as a spare time project in 2008 while working for Red Hat 129 130 131 132 His stated goal was a system in which every frame is perfect by which I mean that applications will be able to control the rendering enough that we ll never see tearing lag redrawing or flicker Hogsberg was driving through the town of Wayland Massachusetts when the underlying concepts crystallized hence the name Weston and Maynard are also nearby towns in the same area continuing the reference 131 133 In October 2010 Wayland became a freedesktop org project 134 135 As part of the migration the prior Google Group was replaced by the wayland devel mailing list as the project s central point of discussion and development The Wayland client and server libraries were initially released under the MIT License 136 while the reference compositor Weston and some example clients used the GNU General Public License version 2 137 Later all the GPL code was relicensed under the MIT license to make it easier to move code between the reference implementation and the actual libraries 138 In 2015 it was discovered that the license text used by Wayland was a slightly different and older version of the MIT license and the license text was updated to the current version used by the X Org project known as MIT Expat License 5 Wayland works with all Mesa compatible drivers with DRI2 support 119 as well as Android drivers via the Hybris project 139 140 141 Releases edit Major Wayland and Weston releases 142 Version Date Main featuresWayland WestonOld version no longer maintained 0 85 9 February 2012 143 First release Old version no longer maintained 0 95 24 July 2012 144 Began API stabilization Old version no longer maintained 1 0 22 October 2012 145 146 Stable wayland client API Old version no longer maintained 1 1 15 April 2013 147 148 Software rendering 62 FBDEV RDP backends Old version no longer maintained 1 2 12 July 2013 149 150 Stable wayland server API Color management Subsurfaces Raspberry Pi backend Old version no longer maintained 1 3 11 October 2013 151 More pixel formats Support for language bindings Android driver support via libhybris Old version no longer maintained 1 4 23 January 2014 26 New wl subcompositor and wl subsurface interfaces Multiple framebuffer formats logind support for rootless Weston Old version no longer maintained 1 5 20 May 2014 68 libinput Fullscreen shell Old version no longer maintained 1 6 19 September 2014 152 libinput by default Old version no longer maintained 1 7 14 February 2015 153 154 Support for the Wayland presentation extension and for surface roles IVI shell protocol Old version no longer maintained 1 8 2 June 2015 155 156 Separated headers for core and generated protocol Repaint scheduling Named outputs Output transformations Surface shooting API Old version no longer maintained 1 9 21 September 2015 157 158 Updated license Updated license New test framework Triple head DRM compositor linux dmabuf extension Old version no longer maintained 1 10 17 February 2016 159 160 Drag and drop functionality grouped pointer events 161 Video 4 Linux 2 touch input debugging improvements 162 Old version no longer maintained 1 11 1 June 2016 163 164 New backup loading routine new setup logic Proxy wrappers shared memory changes Doxygen generated HTML docs Old version no longer maintained 1 12 21 September 2016 165 166 Debugging support improved libweston and libweston desktop Pointer locking and confinement Relative pointer support Old version no longer maintained 1 13 24 February 2017 167 168 The ABI of Weston has been changed thus the new version was named 2 0 0 rather than 1 13 0 Old version no longer maintained 1 14 8 August 2017 169 170 Weston 3 0 0 was released at the same time Old version no longer maintained 1 15 9 April 2018 171 172 Weston 4 0 0 was released at the same time Old version no longer maintained 1 16 24 August 2018 173 174 Weston 5 0 0 was released at the same time Old version no longer maintained 1 17 20 March 2019 175 176 Weston 6 0 0 was released at the same time Old version no longer maintained 1 18 11 February 2020 177 178 Weston 7 0 0 was released on 2019 08 23 Weston 8 0 0 179 was released on 2020 01 24 Weston 9 0 0 180 was released on 2020 09 04 Old version no longer maintained 1 19 27 January 2021 181 Old version no longer maintained 1 20 9 December 2021 182 183 Weston 10 0 0 was released on 2022 02 01 Weston 10 0 4 184 was released on 2023 05 17 Old version no longer maintained 1 21 30 June 2022 185 186 Weston 11 0 0 was released on 2022 09 22 Weston 11 0 2 187 was released on 2023 05 17 Current stable version 1 22 4 April 2023 2 188 Weston 12 0 0 was released on 2023 05 17 Weston 12 0 1 189 was released on 2023 05 25 Weston 12 0 2 3 was released on 2023 08 02 Future release 1 23Legend Old versionOlder version still maintainedLatest versionLatest preview versionFuture releaseSee also edit nbsp Free and open source software portalMir software X Window System Linux Guide Applications supported via Wayland Wikibooks References edit Hogsberg Kristian 30 September 2008 Initial commit Archived from the original on 1 April 2020 Retrieved 3 January 2020 a b Ser Simon 4 April 2023 ANNOUNCE wayland 1 22 0 Mailing list Retrieved 9 April 2023 a b https lists freedesktop org archives wayland devel 2023 August 042923 html Wayland amp Weston Compositor Ported To DragonFlyBSD Phoronix www phoronix com Archived from the original on 16 August 2016 Retrieved 20 July 2016 a b c Harrington Bryce 15 September 2015 ANNOUNCE wayland 1 8 93 freedesktop org Mailing list Archived from the original on 25 October 2020 Retrieved 14 January 2020 wayland wayland root COPYING freedesktop org Archived from the original on 11 November 2013 Retrieved 14 June 2015 Larabel Michael 10 June 2015 Wayland s MIT License To Be Updated Corrected Phoronix com Archived from the original on 25 April 2016 Retrieved 17 April 2016 a b c Wayland Wayland project Archived from the original on 2 March 2011 Retrieved 9 May 2016 Sengar Shivam Singh 16 June 2018 Wayland v s Xorg How Are They Similar amp How Are They Different secjuice Archived from the original on 23 September 2020 Retrieved 10 September 2020 a b c Kerrisk Michael 25 September 2012 XDC2012 Graphics stack security LWN net Archived from the original on 28 March 2016 Retrieved 13 April 2016 a b Peres Martin 21 February 2014 Wayland Compositors Why and How to Handle Privileged Clients Archived from the original on 10 March 2016 Retrieved 17 April 2016 a b Graesslin Martin 23 November 2015 Looking at the security of Plasma Wayland Archived from the original on 27 August 2022 Retrieved 18 April 2016 a b c d e Wayland FAQ Wayland project Archived from the original on 2 April 2016 Retrieved 9 May 2016 Michael Larabel 20 May 2009 The State Of The Wayland Display Server Phoronix Archived from the original on 17 October 2021 Retrieved 17 October 2021 Corbet Jonathan 5 November 2010 LPC Life after X LWN net Archived from the original on 28 April 2016 Retrieved 17 April 2016 Hogsberg Kristian 9 November 2010 Network transparency argument Archived from the original on 15 August 2020 Retrieved 14 January 2020 Wayland isn t a remote rendering API like X but that doesn t exclude network transparency Clients render into a shared buffer and then have to tell the compositor what they changed The compositor can then send the new pixels in that region out over the network The Wayland protocol is already violently asynchronous so it should be able to handle a bit of network lag gracefully Remote fullscreen video viewing or gaming isn t going to work well but I don t know any other display system that handles that well and transparently Larabel Michael 18 August 2011 Remote Wayland Server Project Does It Work Yet Phoronix com Archived from the original on 25 April 2016 Retrieved 17 April 2016 Jackson Adam 9 November 2010 Re Ubuntu moving towards Wayland Archived from the original on 8 March 2021 Retrieved 14 January 2020 Stone Daniel 28 January 2013 The real story behind Wayland and X Speech linux conf au 2013 Canberra Archived from the original on 10 August 2017 Retrieved 13 April 2016 a b c Willis Nathan 13 February 2013 LCA The ways of Wayland LWN net Archived from the original on 24 June 2016 Retrieved 19 May 2016 Aleksandersen Daniel 28 August 2017 Remote desktop capabilities set to make a comeback in GNOME on Wayland Ctrl blog Archived from the original on 28 August 2017 Retrieved 29 August 2017 a b The Hello Wayland Tutorial 8 July 2014 Archived from the original on 13 July 2014 Retrieved 25 July 2014 a b c d e f g h i j k l m n o Hogsberg Kristian Wayland Documentation 1 3 PDF Archived PDF from the original on 10 September 2015 Retrieved 16 March 2016 a b Hogsberg Kristian protocol wayland xml FreeDesktop org Archived from the original on 18 July 2014 Retrieved 25 July 2014 a b Paalanen Pekka 25 July 2014 Wayland protocol design object lifespan Archived from the original on 29 May 2016 Retrieved 6 April 2016 a b Hogsberg Kristian 24 January 2014 Wayland and Weston 1 4 is out wayland devel mailing list Archived from the original on 5 April 2020 Retrieved 14 January 2020 xdg shell Adding a new shell protocol freedesktop org 3 December 2013 Archived from the original on 14 July 2014 Retrieved 14 June 2014 GENIVI wayland ivi extension GitHub 17 November 2021 Archived from the original on 24 March 2017 Retrieved 17 August 2016 a b c Vervloesem Koen 15 February 2012 FOSDEM The Wayland display server LWN net Archived from the original on 5 June 2016 Retrieved 9 May 2016 Barnes Jesse Introduction to Wayland PDF Intel Open Source Technology Center Archived PDF from the original on 6 April 2016 Retrieved 18 April 2016 Does not include a rendering API Clients use what they want and send buffer handles to the server Paalanen Pekka 21 November 2012 On supporting Wayland GL clients and proprietary embedded platforms Archived from the original on 6 April 2016 Retrieved 6 April 2016 Buffer sharing works by creating a handle for a buffer and passing that handle to another process which then uses the handle to make the GPU access again the same buffer Griffith Eric 7 June 2013 The Wayland Situation Facts About X vs Wayland Phoronix com p 2 Archived from the original on 24 September 2015 Retrieved 17 April 2016 a b Wayland Architecture Wayland project Archived from the original on 13 March 2016 Retrieved 9 May 2016 Edge Jake 11 April 2012 LFCS 2012 X and Wayland LWN net Archived from the original on 30 April 2016 Retrieved 17 April 2016 Wayland X Compositor Architecture By Example Enlightenment DR19 PDF Archived PDF from the original on 13 October 2017 Retrieved 18 April 2016 a b Graesslin Martin 7 February 2013 Client Side Window Decorations and Wayland Archived from the original on 13 April 2016 Retrieved 17 April 2016 X Org Security X Org Foundation Archived from the original on 22 December 2017 Retrieved 2 July 2017 The X server has long included an extension SECURITY which provides support for a simple trusted untrusted connection model Wiggins David P 15 November 1996 Security Extension Specification X Consortium Standard Archived from the original on 8 December 2018 Retrieved 2 July 2017 Walsh Eamon F 2009 X Access Control Extension Specification Archived from the original on 9 January 2016 Retrieved 2 July 2017 Debian Moves To Non Root X Org Server By Default Phoronix www phoronix com Archived from the original on 2 April 2018 Retrieved 2 April 2018 Non root Xorg Gentoo Wiki wiki gentoo org Archived from the original on 2 April 2018 Retrieved 2 April 2018 X Rootless Ubuntu Wiki wiki ubuntu com Archived from the original on 2 April 2018 Retrieved 2 April 2018 1078902 Xorg without root rights bugzilla redhat com Archived from the original on 2 April 2018 Retrieved 2 April 2018 X Clients under Wayland XWayland Wayland project Archived from the original on 27 August 2022 Retrieved 18 July 2014 ANNOUNCE xorg server 1 16 0 freedesktop org 17 July 2014 Archived from the original on 8 March 2021 Retrieved 14 January 2020 a b Hogsberg Kristian 3 January 2011 Multiple backends for GTK Archived from the original on 27 August 2022 Retrieved 10 March 2016 QtWayland Qt Wiki Archived from the original on 10 March 2016 Retrieved 9 March 2016 Full Wayland support in GTK GNOME wiki Archived from the original on 7 September 2015 Retrieved 10 March 2016 a b Larabel Michael 30 November 2015 Enlightenment 0 20 Arrives With Full Wayland Support amp Better FreeBSD Support Phoronix com Archived from the original on 15 March 2016 Retrieved 17 April 2016 Wayland www enlightenment org Archived from the original on 9 March 2016 Retrieved 8 March 2016 Plasma 5 21 KDE Community 16 February 2021 Archived from the original on 8 March 2021 Retrieved 9 March 2021 Index of sources mutter wayland download gnome org Archived from the original on 21 May 2014 Retrieved 27 May 2014 Bump version to 3 13 1 30 April 2014 Sway swaywm org Archived from the original on 20 December 2018 Retrieved 20 December 2018 swaywm wlroots GitHub Archived from the original on 19 December 2018 Retrieved 28 October 2018 swaywm sway GitHub Archived from the original on 28 August 2019 Retrieved 28 October 2018 README cgit freedesktop org Archived from the original on 8 March 2021 Retrieved 9 November 2019 README file from the Wayland source code repository freedesktop org Archived from the original on 14 January 2020 Retrieved 14 January 2020 Larabel Michael 16 February 2013 Wayland Begins Porting Process To FreeBSD Phoronix com Archived from the original on 25 April 2016 Retrieved 17 April 2016 Adding Content protection support in drm backend 48 Merge Requests wayland weston GitLab 6 November 2018 Archived from the original on 27 August 2022 Retrieved 27 October 2019 Paalanen Pekka 10 March 2012 What does EGL do in the Wayland stack Archived from the original on 12 October 2016 Retrieved 19 May 2016 a b Larabel Michael 6 January 2013 A Software Based Pixman Renderer For Wayland s Weston Phoronix com Archived from the original on 25 April 2016 Retrieved 17 April 2016 Hogsberg Kristian 9 December 2010 Blender3D amp cursor clamping Archived from the original on 25 October 2020 Retrieved 14 January 2020 a b RFC weston remote access interface module freedesktop org 18 October 2013 Archived from the original on 25 October 2020 Retrieved 14 January 2020 Maynard announcement 16 April 2014 Archived from the original on 8 March 2017 Retrieved 16 April 2014 a b Raspberry Pi Case Study Collabora Archived from the original on 1 September 2013 Retrieved 9 August 2013 a b Wayland preview Raspberry Pi Archived from the original on 9 February 2014 Retrieved 9 August 2013 a b Hogsberg Kristian 20 May 2014 Wayland and Weston 1 5 0 is released wayland devel mailing list Archived from the original on 19 October 2019 Retrieved 14 January 2020 Adahl Jonas 12 November 2013 RFC Common input device library Wayland mailing list Archived from the original on 25 October 2020 Retrieved 14 January 2020 libinput Freedesktop org Archived from the original on 19 April 2014 Retrieved 21 May 2014 Hutterer Peter 8 October 2014 Consolidating the input stacks with libinput Speech The X Org Developer Conference 2014 Bordeaux Archived from the original on 1 November 2020 Retrieved 14 January 2020 Hutterer Peter 22 February 2015 libinput the road to 1 0 Archived from the original on 25 October 2020 Retrieved 9 November 2019 Libinput support added to Touchpad KCM 22 February 2015 Archived from the original on 24 February 2015 Retrieved 24 February 2015 Goede Hans de 23 February 2015 Libinput now enabled as default xorg driver for F 22 workstation installs Archived from the original on 24 February 2015 Retrieved 24 February 2015 Hutterer Peter 24 September 2014 libinput a common input stack for Wayland compositors and X Org drivers Archived from the original on 7 April 2016 Retrieved 17 April 2016 de Goede Hans 1 February 2015 Replacing xorg input Drivers with libinput PDF Archived PDF from the original on 22 November 2021 Retrieved 18 April 2016 a b Dodier Lazaro Steve Peres Martin 9 October 2014 Security in Wayland based Desktop Environments Privileged Clients Authorization Authentication and Sandboxing Speech The X Org Developer Conference 2014 Bordeaux Archived from the original on 9 April 2016 Retrieved 18 April 2016 Changes WaylandByDefault Fedora Project Wiki fedoraproject org Archived from the original on 27 December 2015 Retrieved 9 November 2020 ReleaseNotes for Ubuntu 17 10 Canonical Archived from the original on 24 November 2017 Retrieved 10 November 2017 Ubuntu 18 04 will revert to long in the tooth Xorg Archived from the original on 29 January 2018 Retrieved 28 January 2018 Bionic Beaver 18 04 LTS to use Xorg by default Canonical Archived from the original on 18 February 2018 Retrieved 18 February 2018 Ubuntu 21 04 is here Canonical Ubuntu Blog Archived from the original on 22 April 2021 Retrieved 14 June 2021 Release notes for Red Hat Enterprise Linux 8 0 Red Hat Customer Portal Archived from the original on 25 November 2020 Retrieved 25 December 2020 NewInBuster Debian Wiki wiki debian org Archived from the original on 25 September 2019 Retrieved 15 July 2019 Slackware ChangeLogs Slackware Linux Archived from the original on 30 January 2020 Retrieved 26 February 2020 Manjaro 20 2 Nibia got released 3 December 2020 Archived from the original on 4 December 2020 Retrieved 3 December 2020 Wayland Live OS Is Now Based On Debian Testing Working KDE Wayland Support Phoronix Archived from the original on 11 August 2019 Retrieved 14 January 2020 RebeccaBlackOS Sourceforge Archived from the original on 25 November 2016 Retrieved 11 October 2016 Trying Out Wayland With Rebecca Black Phoronix Archived from the original on 18 May 2020 Retrieved 14 January 2020 New Wayland Live CD Has A Lot Of Features Phoronix Archived from the original on 18 May 2020 Retrieved 14 January 2020 Bassi Emmanuele 31 January 2011 ANNOUNCE Clutter 1 6 0 stable clutter announce Mailing list Archived from the original on 10 March 2016 Retrieved 9 March 2016 Bradford Rob 16 December 2011 Clutter amp Cogl Wayland update Retrieved 9 March 2016 The Clutter client side support is basically complete permanent dead link Bassi Emmanuele 24 September 2013 ANNOUNCE Clutter 1 16 0 stable clutter announce Mailing list Archived from the original on 10 March 2016 Retrieved 9 March 2016 Wayland Enlightenment Archived from the original on 29 March 2013 Retrieved 6 March 2013 GTK Roadmap Archived from the original on 13 March 2016 Retrieved 8 March 2016 Lantinga Sam 8 March 2014 SDL 2 0 2 RELEASED SDL Project Archived from the original on 15 March 2014 Retrieved 18 March 2014 Larabel Michael 9 January 2016 SDL 2 0 4 Was Quietly Released Last Week With Wayland amp Mir By Default Phoronix com Archived from the original on 16 March 2016 Retrieved 17 April 2016 Berglund Camilla 8 April 2014 Implementation for Wayland Issue 106 glfw glfw GitHub GitHub Archived from the original on 27 August 2022 Retrieved 14 August 2014 FreeGLUT Implement initial Wayland support GitHub Archived from the original on 10 November 2020 Retrieved 7 April 2015 GNOME Initiatives Wayland GNOME Wiki Archived from the original on 7 March 2016 Retrieved 8 March 2016 KWin Wayland KDE Community Wiki Archived from the original on 10 March 2016 Retrieved 8 March 2016 Enlightenment Wayland Enlightenment org Archived from the original on 9 March 2016 Retrieved 8 March 2016 Enlightenment DR 0 20 0 Release Enlightenment org Archived from the original on 21 June 2018 Retrieved 8 March 2016 The Enlightenment of Wayland FOSDEM org Archived from the original on 9 March 2016 Retrieved 8 March 2016 ReleasePlanning FeaturesPlans GNOME Project Archived from the original on 31 May 2015 Retrieved 31 May 2015 A Look At The Exciting Features Improvements Of GNOME 3 22 Phoronix Archived from the original on 12 August 2020 Retrieved 14 January 2020 GNOME Lands Mainline NVIDIA Wayland Support Using EGLStreams Phoronix Archived from the original on 8 August 2019 Retrieved 14 January 2020 Plasma s Road to Wayland 25 July 2014 Archived from the original on 27 July 2014 Retrieved 25 July 2014 Larabel Michael 14 June 2013 KDE 4 11 Beta Released Works On Wayland Phoronix com Archived from the original on 25 April 2016 Retrieved 17 April 2016 Graesslin Martin 29 June 2015 Four years later Archived from the original on 31 March 2016 Retrieved 17 April 2016 Dawe Liam 28 July 2020 KDE Plasma 5 20 will properly support screen recording on Wayland and more gamingonlinux com Archived from the original on 27 August 2022 Retrieved 10 September 2020 Schaller Christian 3 July 2014 Wayland in Fedora Update blogs gnome org Archived from the original on 1 May 2016 Retrieved 17 April 2016 VNC Wayland Developer Preview 8 July 2014 Archived from the original on 14 July 2014 RealVNC Wayland developer preview email freedesktop org 9 July 2014 Archived from the original on 25 October 2020 Retrieved 14 January 2020 Maliit Status Update Posterous 2 April 2013 Archived from the original on 17 May 2013 Retrieved 14 October 2013 More Maliit Keyboard Improvements QtQuick2 Murray s Blog 2 April 2013 Archived from the original on 13 October 2013 Retrieved 14 October 2013 Maliit under Wayland Archived from the original on 11 June 2013 Retrieved 14 September 2013 wlterm Freedesktop org Archived from the original on 14 July 2014 Retrieved 8 July 2014 a b Hillesley p 3 Eclipse now runs on Wayland 18 August 2014 Archived from the original on 23 August 2014 Retrieved 17 September 2014 Stone Daniel 16 February 2016 Vulkan 1 0 specification released with day one support for Wayland Archived from the original on 24 June 2016 Retrieved 27 February 2016 Wayland Backend DRM IVI Layer Management GENIVI Alliance Archived from the original on 1 February 2014 Retrieved 15 July 2013 The First Jolla Smartphone Runs With Wayland LinuxG net 14 July 2013 Archived from the original on 28 June 2014 Retrieved 8 October 2013 VDVsx VDVsx 13 July 2013 sailfishos main components diagram Qt5 Wayland JollaHQ Akademy Tweet via Twitter Jolla JollaHQ 13 July 2013 faenil PeppeLaKappa VDVsx our first Jolla will ship with wayland yes Tweet via Twitter IVI IVI Setup Tizen Wiki Archived from the original on 10 February 2017 Retrieved 8 April 2013 VanCutsem Geoffroy 10 July 2013 IVI Tizen IVI 3 0 M1 released IVI Mailing list Archived from the original on 2 October 2013 Retrieved 13 July 2013 Amadeo Ron 12 May 2017 The Samsung Z4 is Tizen s new flagship smartphone Ars Technica Archived from the original on 13 May 2017 Retrieved 13 May 2017 Hogsberg Kristian 3 November 2008 Premature publicity is better than no publicity Archived from the original on 28 March 2016 Retrieved 6 April 2016 Interview Kristian Hogsberg FOSDEM Archive 29 January 2012 Archived from the original on 4 March 2016 Retrieved 8 March 2016 a b Hillesley Richard 13 February 2012 Wayland Beyond X The H Open Heise Media UK Archived from the original on 6 December 2013 Retrieved 8 March 2016 Hogsberg Kristian Wayland A New Display Server for Linux Linux Plumbers Conference 2009 Archived from the original on 11 August 2017 Jenkins Evan 22 March 2011 The Linux graphics stack from X to Wayland Ars Technica Archived from the original on 10 April 2016 Retrieved 17 April 2016 Larabel Michael 29 October 2010 Wayland Becomes A FreeDesktop org Project Phoronix com Archived from the original on 14 April 2016 Retrieved 17 April 2016 Hogsberg Kristian 29 October 2010 Moving to freedesktop org Archived from the original on 9 November 2012 Retrieved 31 July 2013 Hogsberg Kristian 3 December 2008 Wayland is now under MIT license wayland display server Mailing list Archived from the original on 9 November 2012 Retrieved 8 March 2016 Hogsberg Kristian 22 November 2010 Wayland license clarification wayland devel Mailing list Archived from the original on 9 March 2016 Retrieved 8 March 2016 Hogsberg Kristian 19 September 2011 License update wayland devel Mailing list Archived from the original on 29 April 2016 Retrieved 8 March 2016 Munk Carsten 11 April 2013 Wayland utilizing Android GPU drivers on glibc based systems Part 1 Mer Project Archived from the original on 19 April 2013 Retrieved 3 July 2013 Munk Carsten 8 June 2013 Wayland utilizing Android GPU drivers on glibc based systems Part 2 Mer Project Archived from the original on 24 October 2013 Retrieved 3 July 2013 Larabel Michael 11 April 2013 Jolla Brings Wayland Atop Android GPU Drivers Phoronix com Archived from the original on 25 April 2016 Retrieved 17 April 2016 Wayland Wayland freedesktop org Archived from the original on 7 July 2013 Retrieved 15 July 2013 Hogsberg Kristian 9 February 2012 ANNOUNCE Wayland and Weston 0 85 0 released wayland devel mailing list Archived from the original on 14 January 2020 Retrieved 14 January 2020 Hogsberg Kristian 24 July 2012 Wayland and Weston 0 95 0 released wayland devel mailing list Archived from the original on 25 October 2020 Retrieved 14 January 2020 Hogsberg Kristian 22 October 2012 Wayland and Weston 1 0 wayland devel mailing list Archived from the original on 23 August 2019 Retrieved 14 January 2020 Scherschel Fabian 23 October 2012 Wayland s 1 0 milestone fixes graphics protocol The H Open Heise Media UK Archived from the original on 7 December 2013 Retrieved 17 April 2016 Larabel Michael 16 April 2013 Wayland 1 1 Officially Released With Weston 1 1 Phoronix com Archived from the original on 25 April 2016 Retrieved 17 April 2016 Hogsberg Kristian 15 April 2013 1 1 Released wayland devel mailing list Archived from the original on 27 May 2019 Retrieved 14 January 2020 Larabel Michael 13 July 2013 Wayland 1 2 0 Released Joined By Weston Compositor Phoronix com Archived from the original on 14 April 2016 Retrieved 17 April 2016 Hogsberg Kristian 12 July 2013 Wayland and Weston 1 2 0 released wayland devel mailing list Archived from the original on 25 June 2019 Retrieved 14 January 2020 Hogsberg Kristian 11 October 2013 Wayland and Weston 1 3 releases are out wayland devel mailing list Archived from the original on 8 August 2020 Retrieved 11 April 2020 Paalanen Pekka 19 September 2014 Wayland and Weston 1 6 0 released wayland devel mailing list Archived from the original on 27 May 2019 Retrieved 14 January 2020 Harrington Bryce 14 February 2015 ANNOUNCE wayland 1 7 0 wayland devel mailing list Archived from the original on 5 April 2020 Retrieved 14 January 2020 Harrington Bryce 14 February 2015 ANNOUNCE weston 1 7 0 wayland devel mailing list Archived from the original on 5 April 2020 Retrieved 14 January 2020 Harrington Bryce 2 June 2015 ANNOUNCE wayland 1 8 0 wayland devel mailing list Archived from the original on 15 August 2020 Retrieved 14 January 2020 Harrington Bryce 2 June 2015 ANNOUNCE weston 1 8 0 wayland devel mailing list Archived from the original on 15 August 2020 Retrieved 14 January 2020 Harrington Bryce 21 September 2015 ANNOUNCE wayland 1 9 0 wayland devel Mailing list Archived from the original on 25 October 2020 Retrieved 14 January 2020 Harrington Bryce 21 September 2015 ANNOUNCE weston 1 9 0 wayland devel Mailing list Archived from the original on 21 September 2020 Retrieved 14 January 2020 Harrington Bryce 17 February 2016 ANNOUNCE wayland 1 10 0 wayland devel Mailing list Archived from the original on 17 February 2016 Retrieved 17 February 2016 Harrington Bryce 17 February 2016 ANNOUNCE weston 1 10 0 wayland devel Mailing list Archived from the original on 24 February 2016 Retrieved 17 February 2016 Nestor Marius 18 February 2016 Wayland 1 10 Display Server Officially Released Wayland 1 11 Arrives in May 2016 Softpedia Archived from the original on 14 January 2020 Retrieved 14 January 2020 Larabel Michael 16 February 2016 Wayland 1 10 Officially Released Phoronix com Archived from the original on 21 June 2017 Retrieved 17 April 2016 Harrington Bryce 1 June 2016 ANNOUNCE wayland 1 11 0 wayland devel Mailing list Archived from the original on 1 June 2016 Retrieved 1 June 2016 Harrington Bryce 1 June 2016 ANNOUNCE weston 1 11 0 wayland devel Mailing list Archived from the original on 8 October 2016 Retrieved 1 June 2016 Harrington Bryce 21 September 2016 ANNOUNCE wayland 1 12 0 wayland devel Mailing list Archived from the original on 2 April 2017 Retrieved 21 September 2016 Harrington Bryce 21 September 2016 ANNOUNCE weston 1 12 0 wayland devel Mailing list Archived from the original on 8 October 2016 Retrieved 21 September 2016 Harrington Bryce 21 February 2017 ANNOUNCE wayland 1 13 0 wayland devel Mailing list Archived from the original on 24 February 2017 Retrieved 30 April 2017 Harrington Bryce 25 February 2017 ANNOUNCE weston 2 0 0 wayland devel Mailing list Archived from the original on 2 March 2017 Retrieved 30 April 2017 Harrington Bryce 8 August 2017 ANNOUNCE wayland 1 14 0 wayland devel Mailing list Archived from the original on 20 October 2018 Retrieved 25 March 2018 Harrington Bryce 8 August 2017 ANNOUNCE weston 3 0 0 wayland devel Mailing list Archived from the original on 20 October 2018 Retrieved 25 March 2018 Foreman Derek 9 April 2018 ANNOUNCE wayland 1 15 0 wayland devel Mailing list Archived from the original on 10 April 2018 Retrieved 15 April 2018 Foreman Derek 9 April 2018 ANNOUNCE weston 4 0 0 wayland devel Mailing list Archived from the original on 10 April 2018 Retrieved 15 April 2018 Foreman Derek 24 August 2018 ANNOUNCE wayland 1 16 0 wayland devel Mailing list Archived from the original on 28 August 2018 Retrieved 30 November 2018 Foreman Derek 24 August 2018 ANNOUNCE weston 5 0 0 wayland devel Mailing list Archived from the original on 25 August 2018 Retrieved 30 November 2018 Foreman Derek 28 March 2019 ANNOUNCE wayland 1 17 0 Mailing list Archived from the original on 25 March 2019 Retrieved 17 June 2019 Foreman Derek 21 March 2019 ANNOUNCE weston 6 0 0 Mailing list Archived from the original on 31 March 2019 Retrieved 17 June 2019 Ser Simon 11 February 2020 ANNOUNCE wayland 1 18 Mailing list Archived from the original on 1 April 2021 Retrieved 12 February 2020 Ser Simon 23 August 2019 ANNOUNCE weston 7 0 0 Mailing list Archived from the original on 25 August 2019 Retrieved 22 October 2019 Ser Simon 24 January 2020 ANNOUNCE weston 8 0 0 Mailing list Retrieved 12 February 2020 ANNOUNCE weston 9 0 0 4 September 2020 Archived from the original on 29 September 2020 Retrieved 30 October 2020 Ser Simon 27 January 2021 ANNOUNCE wayland 1 19 0 Mailing list Archived from the original on 1 February 2021 Retrieved 27 January 2021 Ser Simon 27 January 2021 ANNOUNCE wayland 1 20 0 Mailing list Archived from the original on 11 December 2021 Retrieved 27 January 2021 Ser Simon 1 February 2022 ANNOUNCE weston 10 0 0 Mailing list Archived from the original on 4 February 2022 Retrieved 12 February 2022 ANNOUNCE weston 10 0 4 17 May 2023 ANNOUNCE wayland 1 21 0 30 June 2022 ANNOUNCE weston 11 0 0 22 September 2022 ANNOUNCE weston 11 0 2 17 May 2023 ANNOUNCE weston 12 0 0 17 May 2023 ANNOUNCE weston 12 0 1 25 May 2023 External links editOfficial website Retrieved from https en wikipedia org w index php title Wayland protocol amp oldid 1177843375, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.