Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Wayland (protocol)

From Wikipedia, the free encyclopedia
(Redirected fromLibinput)
Display system intended to replace X11

Wayland
Weston, thereference implementation of a Wayland server
Original author(s)Kristian Høgsberg
Developer(s)freedesktop.org et al.
Initial release30 September 2008; 16 years ago (2008-09-30)[1]
Stable release
Wayland: 1.23,[2] Weston: 14.0.1[3] / 30 May 2024; 10 months ago (2024-05-30)
Repository
Written inC
Operating systemOfficial:Linux
Unofficial:NetBSD,FreeBSD,OpenBSD,DragonFly BSD[4]
Compatibility layer:Haiku[5]
Type
LicenseMIT License[6][7][8]
Websitewayland.freedesktop.org

Wayland is acommunication protocol that specifies the communication between adisplay server and its clients, as well as aC library implementation of that protocol.[9] A display server using the Wayland protocol is called aWayland compositor, because it additionally performs the task of acompositing window manager.

Wayland is developed by a group of volunteers initially led by Kristian Høgsberg as afree andopen-source community-driven project with the aim of replacing theX Window System with a secure[10][11][12][13] and simplerwindowing system forLinux and otherUnix-like operating systems.[9][14] The project's source code is published under the terms of theMIT License, apermissive free software licence.[14][6]

As part of its efforts, the Wayland project also develops areference implementation of a Wayland compositor calledWeston.[9]

Overview

[edit]
  1. Theevdev module of theLinux kernel gets an event and sends it to theWayland compositor.
  2. The Wayland compositor looks through itsscenegraph 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 viaEGL, 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 anioctl to schedule a pageflip withKMS.

The Wayland Display Server project was started byRed Hat developer Kristian Høgsberg in 2008.[15]

Beginning around 2010, Linux desktop graphics have moved from having "a pile ofrendering interfaces... all talking to theX 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".[16]

Høgsberg could have added anextension 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:[14]

What's different now is that a lot of infrastructure has moved from theX 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 asXRandR,XRender andCOMPOSITE ... 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 namedWeston. The project is also developing versions ofGTK andQt 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 providednetwork transparency, though Høgsberg noted in 2010 that network transparency is possible.[17]It was attempted as aGoogle Summer of Code project in 2011, but was not successful.[18]Adam Jackson has envisioned providing remote access to a Wayland application by either "pixel-scraping" (likeVNC) or getting it to send a "rendering command stream" across the network (as inRDP,SPICE orX11).[19] As of early 2013, Høgsberg was experimenting with network transparency using a proxy Wayland server which sends compressed images to the real compositor.[20][21] In August 2017, GNOME saw the first such pixel-scraping VNC server implementation under Wayland.[22] In modern Wayland compositors, network transparency is handled in anxdg-desktop-portal implementation that implements the RemoteDesktop portal.

Many Wayland compositors also include anxdg-desktop-portal implementation for common tasks such as a native file picker for native applications and sandboxes such asFlatpak (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 aclient–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:[23]

  • A low-level layer orwire protocol that handles theinter-process communication between the two involvedprocesses‍—‌client and compositor‍—‌and themarshalling of the data that they interchange. This layer is message-based and usually implemented using the kernel IPC services, specificallyUnix domain sockets in the case ofLinux and otherUnix-like operating systems.[24]
  • A high-level layer built upon it, that handles the information that client and compositor need to exchange to implement the basic features of awindow system. This layer is implemented as "an asynchronous object-oriented protocol".[25]

While the low-level layer was written manually inC, the high-level layer is automatically generated from a description of the elements of the protocol stored inXML format.[26] 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 twolibraries: a library to be used by Wayland clients calledlibwayland-client and a library to be used by Wayland compositors calledlibwayland-server.[27]

Protocol overview

[edit]

The Wayland protocol is described as an "asynchronousobject-oriented protocol".[25]Object-oriented means that the services offered by the compositor are presented as a series ofobjects living on the same compositor. Each object implements aninterface which has a name, a number of methods (calledrequests) as well as several associatedevents. Every request and event has zero or more arguments, each one with a name and adata type. The protocol isasynchronous in the sense that requests do not have to wait for synchronized replies orACKs, avoidinground-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.[25]

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.[25] 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.[28]

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.[29] 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.[30]

Wayland core interfaces

[edit]

The interfaces of the current version of Wayland protocol are defined in the fileprotocol/wayland.xml of the Wayland source code.[26] This is anXML 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:[29]

  • 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 awl_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 likepointers orkeyboards
  • wl_seat – an object representing a seat (a set of input/output devices) inmultiseat configurations

A typical Wayland client session starts by opening a connection to the compositor using thewl_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 thewl_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 awl_compositor object from where it will request one or morewl_surface objects to show the application output on the display.[28]

Wayland extension interfaces

[edit]

A Wayland compositor can define and export its own additional interfaces.[29] 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 aswl_subsurface interface added in Wayland 1.4[31]).

Extension protocols to the core protocol

[edit]

XDG-Shell protocol

[edit]

XDG-Shell protocol (seefreedesktop.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 inlibwayland-client. An implementation of the xdg-shell protocol, on the contrary, is supposed to be provided by the Wayland compositor. So you will find thexdg-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.[32]

IVI-Shell protocol

[edit]

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

Rendering model

[edit]
Wayland compositor and its clients useEGL to draw directly into theframebuffer;X.Org Server withXWayland andGlamor.

The Wayland protocol does not include a rendering API.[34][14][35][36]: 2  Instead, Wayland follows adirect rendering model, in which the client must render the window contents to a buffer shareable with the compositor.[37] For that purpose, the client can choose to do all the rendering by itself, use a rendering library likeCairo orOpenGL, or rely on the rendering engine of high-level widget libraries with Wayland support, such asQt orGTK. The client can also optionally use other specialized libraries to perform specific tasks, such asFreetype forfont rendering.

The resulting buffer with the rendered window contents are stored in awl_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 thesystem memory, then client and compositor can useshared memory to implement the buffer communication without extra copies. The Wayland protocol already natively provides this kind of shared memory buffer through thewl_shm[38] andwl_shm_pool[39] interfaces. 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 avideo memory buffer using a hardware (GPU) accelerated API such asOpenGL,OpenGL ES orVulkan. Client and compositor can share this GPU-space buffer using a special handler to reference it.[40] 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.[23] 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.[41]: 7  The procedure used for rendering, including the number of buffers involved and their management, is entirely under the client control.[41]: 7 

Comparison with other window systems

[edit]
See 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:[42]

Architecture
Thecomposition manager is a separate, additional feature in X, while Wayland merges display server and compositor as a single function.[43][35] Also, it incorporates some of the tasks of thewindow manager, which in X is a separate client-side process.[44]
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.[45]: 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.).[43][35] 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-inxdg-decoration protocol, if the compositor chooses to implement such functionality.[46]
Security
Wayland isolates the input and output of every window, achievingconfidentiality, integrity and availability for both. The original X design lacked these important security features,[11][12][13] although some extensions have been developed trying to mitigate it.[47][48][49]
Also, with the vast majority of the code running in the client, less code needs to run withroot privileges, improving security,[11] although multiple popular Linux distributions now allow the X server to be run without root privileges.[50][51][52][53]
Inter-process communication
The X server provides a basic communication method between X clients, later extended byICCCM conventions. This X client-to-client communication is used by window managers and also to implementX 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 thedesktop environments (like KDE or GNOME), or by a third party (for example, by using nativeIPC of the underlying operating system).
Networking
The X Window System is anarchitecture that was designed at its core to run over a network. Wayland does not offer network transparency by itself;[14] however, a compositor can implement anyremote 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 ofVNC.[21]

Compatibility with X

[edit]

XWayland is anX Server running as a Wayland client, and thus is capable of displaying native X11 client applications in a Wayland compositor environment.[54] This is similar to the wayXQuartz runs X applications inmacOS'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 intoX.Org Server version 1.16.[55]

Widget toolkits such asQt5 andGTK3 can switch their graphical back-end at run time,[56] allowing users to choose atload time whether they want to run the application over X or over Wayland. Qt 5 provides the-platform command-line option[57] to that effect, whereas GTK 3 lets users select the desiredGDK back-end by setting theGDK_BACKENDUnix environment variable.[56][58]

Wayland compositors

[edit]
Main article:List of Wayland compositors
Typical elements of awindow. The Wayland protocol does not specify what software is responsible for rendering thewindow decoration.[46]
Plasma 5.24.0 (February 2022) on Wayland (kwin_wayland compositor) underArch Linux

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

A library calledwlroots is a modular Wayland implementation that functions as a base for several compositors[59]

Some notable Wayland compositors are:

  • Weston – thereference implementation of a Wayland compositor; Weston implementsclient side decorations
  • Enlightenment claimed full Wayland support since version 0.20[60] but work is currently underway to land a complete Wayland compositor[61]
  • KWin has nearly complete Wayland support as of 2021[62]
  • Mutter maintained a separate branch for the integration of Wayland for GNOME 3.9 (in September 2013);[63] in the 3.13.1 release in 2014, the Wayland branch was merged into the main repository.[64]
  • Clayland – a simple example Wayland compositor using Clutter
  • Sway – a tiling Wayland compositor, based on wlroots; it is a drop-in replacement for the i3 X11 window manager.[65][66][67]
  • Hyprland – an independent tiling Wayland compositor written in C++. Noteworthy features of Hyprland include dynamic tiling, tabbed windows, a clean and readable C++ code-base, and a custom renderer that provides window animations, rounded corners, and Dual-Kawase Blur on transparent windows.[68][69]
  • Woodland – a wlroots-based stacking Wayland compositor written in C, inspired by TinyWL and focused on simplicity and stability.

Weston

[edit]

Weston is the reference implementation of a Wayland compositor[70] also developed by the Wayland project. It is written inC and published under theMIT License. Weston has official support for only theLinux operating system due to Weston's dependence on certain features of theLinux kernel, such askernel mode-setting,Graphics Execution Manager (GEM), andudev, which have not been implemented in other Unix-like operating systems.[71] When running on Linux, handling of the input hardware relies onevdev, while the handling of buffers relies onGeneric Buffer Management (GBM). However, in 2013 a prototype port of Weston toFreeBSD was announced.[72]

Weston supportsHigh-bandwidth Digital Content Protection (HDCP).[73]

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.[21] Clients are responsible for the drawing of their window borders and their decorations. For rendering, Weston can useOpenGL ES[74] or the pixman library to dosoftware rendering.[75] The full OpenGL implementation is not used, because on most current systems, installing the full OpenGL libraries would also installGLX and otherX Window System support libraries as dependencies.[76]

A remote access interface for Weston was proposed in October 2013 by aRealVNC employee.[77]

Maynard

[edit]
Maynard (in January 2017)

Maynard is agraphical shell and has been written as a plug-in for Weston, just as theGNOME Shell has been written as a plug-in toMutter.[78]

TheRaspberry Pi Foundation in collaboration withCollabora released Maynard and work on improving performance and memory consumption.[79][80]

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, calledlibinput, for which support was first merged in Weston 1.5.[81][82]

Libinput handles input devices for multiple Wayland compositors and also provides a genericX.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] (viaudev), device handling, input device event processing and abstraction.[83][84]

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.[85]

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

With version 1.16, theX.Org Server obtained support for the libinput library in form of a wrapper calledxf86-input-libinput.[88][89]

Wayland Security Module

[edit]

Wayland Security Module is a proposition that resembles theLinux Security Module interface found in theLinux kernel.[90]

Some applications (especially the ones related toaccessibility) 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 throughxdg-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.[90]

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[update] these additional interfaces were being worked on. So, while the toolkits already fully support Wayland, the developers of thegraphical 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, withX.Org as a fallback if the graphics driver cannot support Wayland.[91] 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).[92] However, Ubuntu 18.04 LTS reverted to X.Org by default due to several issues.[93][94] Since Ubuntu 21.04, Wayland is the default again.[95]
  • Red Hat Enterprise Linux ships Wayland as the default session in version 8, released 7 May 2019.[96]
  • Debian ships Wayland as the default session for GNOME since version 10, released 6 July 2019.[97]
  • Slackware Linux included Wayland on 20 February 2020[98] 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).[99]

Notable early adopter:

  • RebeccaBlackOS is alive USB Debian-based[100] 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.[101] It has been used since as early as 2012 to showcase Wayland.[102][103]

Toolkit support

[edit]

Toolkits supporting Wayland include the following:

  • Clutter has complete Wayland support.[104][105][106]
  • EFL has complete Wayland support, except for selection.[107]
  • GTK 3.20 has complete Wayland support.[108]
  • 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[109] and was enabled by default since version 2.0.4.[110]
  • GLFW 3.2 has Wayland support.[111]
  • FreeGLUT has initial Wayland support.[112]

Desktop environments

[edit]

Desktop environments in the process of being ported from X to Wayland includeGNOME,[113]KDE Plasma 6[114] andEnlightenment.[115]

In November 2015, Enlightenment e20 was announced with full Wayland support.[116][60][117] GNOME 3.20 was the first version to have a full Wayland session.[118] GNOME 3.22 included much improved Wayland support across GTK, Mutter, and GNOME Shell.[119] GNOME 3.24 shipped support for the proprietary Nvidia drivers under Wayland.[120]

Wayland support for KDE Plasma was delayed until the release of Plasma 5,[121] though previouslyKWin 4.11 got an experimental Wayland support.[122] The version 5.4 of Plasma was the first with a Wayland session.[123] During 2020 Klipper was ported to Wayland and Plasma 5.20, released in October 2020, improved screen casting and recording.[124][125] In Plasma 6, the default graphical session that uses Wayland was set as the default, making the X11 session secondary.[126]

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.[127]
  • RealVNC published a Wayland developer preview in July 2014.[77][128][129]
  • wayvnc is a VNC server for wlroots-based Wayland compositors.
  • Maliit is aninput method framework that runs under Wayland.[130][131][132]
  • kmscon supports Wayland with wlterm.[133]
  • Mesa has Wayland support integrated.[134]
  • Eclipse was made to run on Wayland during aGSoC-Project in 2014.[135]
  • TheVulkan 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.[136]
  • Waydroid (formerly calledAnbox-Halium), a container for Android applications to run on Linux distributions using Wayland.

Mobile and embedded hardware

[edit]
Weston running onpostmarketOS

Mobile and embedded hardware supporting Wayland includes the following:

History

[edit]
Wayland usesdirect rendering overEGL.

Kristian Høgsberg, aLinux graphics andX.Orgdeveloper who previously worked onAIGLX andDRI2, started Wayland as a spare-time project in 2008 while working forRed Hat.[145][146][147][148] 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 ofWayland, Massachusetts when the underlying concepts "crystallized", hence the name (Weston andMaynard are also nearby towns in the same area, continuing the reference).[147][149]

In October 2010, Wayland became afreedesktop.org project.[150][151] As part of the migration the priorGoogle Group was replaced by thewayland-devel mailing list as the project's central point of discussion and development.

The Wayland client and server libraries were initially released under theMIT License,[152] while the reference compositor Weston and some example clients used theGNU General Public License version 2.[153] Later all the GPL codewas relicensed under the MIT license "to make it easier to move code between the reference implementation and the actual libraries".[154] 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 theX.Org project (known asMIT Expat License).[6]

Wayland works with allMesa-compatible drivers withDRI2 support[134] as well asAndroid drivers via theHybris project.[155][156][157]

Releases

[edit]
Major Wayland and Weston releases[158]
VersionDateMain features
WaylandWestonWayland Protocols
Old version, not maintained: 0.859 February 2012[159]First release.
Old version, not maintained: 0.9524 July 2012[160]Began API stabilization.
Old version, not maintained: 1.022 October 2012[161][162]Stable wayland-client API.
Old version, not maintained: 1.115 April 2013[163][164]Software rendering.[75] FBDEV, RDP backends.
Old version, not maintained: 1.212 July 2013[165][166]Stable wayland-server API.Color management. Subsurfaces.Raspberry Pi backend.
Old version, not maintained: 1.311 October 2013[167]More pixel formats. Support for language bindings.Android driversupport vialibhybris.
Old version, not maintained: 1.423 January 2014[31]New wl_subcompositor and wl_subsurface interfaces.Multiple framebuffer formats. logind support for rootless Weston.
Old version, not maintained: 1.520 May 2014[81]libinput. Fullscreen shell.
Old version, not maintained: 1.619 September 2014[168]libinput by default.
Old version, not maintained: 1.714 February 2015[169][170]Support for the Wayland presentation extension and for surface roles.IVI shell protocol.
Old version, not maintained: 1.82 June 2015[171][172]Separated headers for core and generated protocol.Repaint scheduling. Named outputs. Output transformations. Surface-shooting API.
Old version, not maintained: 1.921 September 2015[173][174]Updated license.Updated license. New test framework. Triple-head DRM compositor. linux_dmabuf extension.1.0 (2015-11-24)[175]
Old version, not maintained: 1.1017 February 2016[176][177]Drag-and-drop functionality, grouped pointer events.[178]Video 4 Linux 2, touch input, debugging improvements.[179]1.1 (2016-02-16)[180]
1.4 (2016-05-23)[181]
Old version, not maintained: 1.111 June 2016[182][183]New backup loading routine, new setup logic.Proxy wrappers, shared memory changes, Doxygen-generated HTML docs.1.5 (2016-07-22)[184]
1.7 (2016-08-15)[185]
Old version, not maintained: 1.1221 September 2016[186][187]Debugging support improved.libweston and libweston-desktop. Pointer locking and confinement. Relative pointer support.
Old version, not maintained: 1.1324 February 2017[188]The ABI of Weston has been changed, thus the new version was named 2.0.0[189] rather than 1.13.0.1.8 (2017-06-12)
1.10 (2017-07-31)[190]
Old version, not maintained: 1.148 August 2017[191]Weston 3.0.0[192] was released at the same time.1.11 (2017-10-11)[193]
1.13 (2018-02-14)[194]
Old version, not maintained: 1.159 April 2018[195]Weston 4.0.0[196] was released at the same time.1.14 (2018-05-07)[197]
1.16 (2018-07-30)[198]
Old version, not maintained: 1.1624 August 2018[199]Weston 5.0.0[200] was released at the same time.1.17 (2018-11-12)[201]
Old version, not maintained: 1.1720 March 2019[202]Weston 6.0.0[203] was released at the same time.1.18 (2019-07-25)[204]
Old version, not maintained: 1.1811 February 2020[205]Weston 7.0.0[206] was released on 2019-08-23.
Weston 8.0.0[207] was released on 2020-01-24.
Weston 9.0.0[208] was released on 2020-09-04.
1.19 (2020-02-29)[209]
1.20 (2020-02-29)[210]
Old version, not maintained: 1.1927 January 2021[211]1.21 (2021-04-30)[212]
1.24 (2021-11-23)[213]
Old version, not maintained: 1.209 December 2021[214]Weston 10.0.0[215] was released on 2022-02-01.
Weston 10.0.5[216] was released on 2023-08-02.
1.25 (2022-01-28)[217]
Old version, not maintained: 1.2130 June 2022[218]Weston 11.0.0[219] was released on 2022-09-22.
Weston 11.0.3[220] was released on 2023-08-02.
1.26 (2022-07-07)[221]
1.31 (2022-11-29)[222]
Old version, not maintained: 1.224 April 2023[223]Weston 12.0.0[224] was released on 2023-05-17.
Weston 12.0.4[225] was released on 2024-04-23.
Weston 13.0.0[226] was released on 2023-11-27.
Weston 13.0.3[227] was released on 2024-06-05.
1.32 (2023-07-03)[228]
1.36 (2024-04-26)[229]
Latest version:1.2330 May 2024[2]Weston 14.0.0[230] was released on 2024-09-04.
Weston 14.0.1[3] was released on 2024-10-21.
1.37 (2024-08-31)[231]
1.44 (2025-04-27)[232]
Future version: 1.24
Legend:
Old version, not maintained
Old version, still maintained
Latest version
Latest preview version
Future version

See also

[edit]

References

[edit]
  1. ^Høgsberg, Kristian (30 September 2008)."Initial commit". Retrieved4 August 2024.
  2. ^abSer, Simon (30 May 2024)."[ANNOUNCE] wayland 1.23.0".wayland-devel (Mailing list).
  3. ^abVlad, Marius (21 October 2024)."[ANNOUNCE] weston 14.0.1".wayland-devel (Mailing list).
  4. ^"Wayland & Weston Compositor Ported To DragonFlyBSD - Phoronix".www.phoronix.com.Archived from the original on 16 August 2016. Retrieved20 July 2016.
  5. ^"My progress in Wayland compatibility layer". 24 July 2022.
  6. ^abcHarrington, Bryce (15 September 2015)."[ANNOUNCE] wayland 1.8.93".freedesktop.org (Mailing list).Archived from the original on 25 October 2020. Retrieved14 January 2020.
  7. ^"wayland/wayland: root/COPYING".gitlab.freedesktop.org. 9 June 2015. Retrieved4 August 2024.
  8. ^Larabel, Michael (10 June 2015)."Wayland's MIT License To Be Updated/Corrected".Phoronix.com.Archived from the original on 25 April 2016. Retrieved17 April 2016.
  9. ^abc"Wayland".Wayland project.Archived from the original on 2 March 2011. Retrieved9 May 2016.
  10. ^Sengar, Shivam Singh (16 June 2018)."Wayland v/s Xorg : How Are They Similar & How Are They Different".secjuice.Archived from the original on 23 September 2020. Retrieved10 September 2020.
  11. ^abcKerrisk, Michael (25 September 2012)."XDC2012: Graphics stack security".LWN.net.Archived from the original on 28 March 2016. Retrieved13 April 2016.
  12. ^abPeres, Martin (21 February 2014)."Wayland Compositors - Why and How to Handle Privileged Clients!".Archived from the original on 10 March 2016. Retrieved17 April 2016.
  13. ^abGraesslin, Martin (23 November 2015)."Looking at the security of Plasma/Wayland".Archived from the original on 27 August 2022. Retrieved18 April 2016.
  14. ^abcde"Wayland FAQ".Wayland project.Archived from the original on 2 April 2016. Retrieved9 May 2016.
  15. ^Michael Larabel (20 May 2009)."The State Of The Wayland Display Server".Phoronix.Archived from the original on 17 October 2021. Retrieved17 October 2021.
  16. ^Corbet, Jonathan (5 November 2010)."LPC: Life after X".LWN.net.Archived from the original on 28 April 2016. Retrieved17 April 2016.
  17. ^Høgsberg, Kristian (9 November 2010)."Network transparency argument".Archived from the original on 15 August 2020. Retrieved14 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.
  18. ^Larabel, Michael (18 August 2011)."Remote Wayland Server Project: Does It Work Yet?".Phoronix.com.Archived from the original on 25 April 2016. Retrieved17 April 2016.
  19. ^Jackson, Adam (9 November 2010)."[Re:] Ubuntu moving towards Wayland".devel@lists.fedoraproject.org (Mailing list). Archived fromthe original on 8 March 2021. Retrieved14 January 2020.
  20. ^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. Retrieved13 April 2016.
  21. ^abcWillis, Nathan (13 February 2013)."LCA: The ways of Wayland".LWN.net.Archived from the original on 24 June 2016. Retrieved19 May 2016.
  22. ^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. Retrieved29 August 2017.
  23. ^ab"The Hello Wayland Tutorial". 8 July 2014.Archived from the original on 13 July 2014. Retrieved25 July 2014.
  24. ^Høgsberg, Kristian."Chapter 4. Wayland Protocol and Model of Operation".The Wayland Protocol. Wire Format.
  25. ^abcdHøgsberg, Kristian."Chapter 4. Wayland Protocol and Model of Operation".The Wayland Protocol. Basic Principles.
  26. ^abHøgsberg, Kristian (8 May 2024)."protocol/wayland.xml".gitlab.freedesktop.org. Retrieved5 August 2024.
  27. ^Høgsberg, Kristian."Appendix B. Client API".The Wayland Protocol. Introduction.
  28. ^abPaalanen, Pekka (25 July 2014)."Wayland protocol design: object lifespan".Archived from the original on 29 May 2016. Retrieved6 April 2016.
  29. ^abcHøgsberg, Kristian."Chapter 4. Wayland Protocol and Model of Operation".The Wayland Protocol. Interfaces.
  30. ^Høgsberg, Kristian."Chapter 4. Wayland Protocol and Model of Operation".The Wayland Protocol. Versioning.
  31. ^abHøgsberg, Kristian (24 January 2014)."Wayland and Weston 1.4 is out".wayland-devel (Mailing list).Archived from the original on 5 April 2020. Retrieved14 January 2020.
  32. ^"xdg_shell: Adding a new shell protocol".freedesktop.org. 3 December 2013. Retrieved4 August 2024.
  33. ^"GENIVI/wayland-ivi-extension".GitHub. 17 November 2021.Archived from the original on 24 March 2017. Retrieved17 August 2016.
  34. ^Høgsberg, Kristian."Chapter 3. Wayland Architecture".The Wayland Protocol. X vs. Wayland Architecture.
  35. ^abcVervloesem, Koen (15 February 2012)."FOSDEM: The Wayland display server".LWN.net.Archived from the original on 5 June 2016. Retrieved9 May 2016.
  36. ^Barnes, Jesse."Introduction to Wayland"(PDF). Intel Open Source Technology Center.Archived(PDF) from the original on 6 April 2016. Retrieved18 April 2016.Does not include a rendering API – Clients use what they want and send buffer handles to the server
  37. ^Høgsberg, Kristian."Chapter 3. Wayland Architecture".The Wayland Protocol. Wayland Rendering.
  38. ^Høgsberg, Kristian."Appendix A. Wayland Protocol Specification".The Wayland Protocol. wl_shm - shared memory support.
  39. ^Høgsberg, Kristian."Appendix A. Wayland Protocol Specification".The Wayland Protocol. wl_shm_pool - a shared memory pool.
  40. ^Paalanen, Pekka (21 November 2012)."On supporting Wayland GL clients and proprietary embedded platforms".Archived from the original on 6 April 2016. Retrieved6 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.
  41. ^abHøgsberg, Kristian."Wayland Documentation 1.3"(PDF).Archived(PDF) from the original on 10 September 2015. Retrieved16 March 2016.
  42. ^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. Retrieved17 April 2016.
  43. ^ab"Wayland Architecture".Wayland project.Archived from the original on 13 March 2016. Retrieved9 May 2016.
  44. ^Edge, Jake (11 April 2012)."LFCS 2012: X and Wayland".LWN.net.Archived from the original on 30 April 2016. Retrieved17 April 2016.
  45. ^"Wayland/X Compositor Architecture By Example: Enlightenment DR19"(PDF). Retrieved4 August 2024.
  46. ^abGraesslin, Martin (7 February 2013)."Client Side Window Decorations and Wayland".Archived from the original on 13 April 2016. Retrieved17 April 2016.
  47. ^"X.Org Security".X.Org Foundation.Archived from the original on 22 December 2017. Retrieved2 July 2017.The X server has long included an extension, SECURITY, which provides support for a simple trusted/untrusted connection model.
  48. ^Wiggins, David P. (15 November 1996)."Security Extension Specification".X Consortium Standard.Archived from the original on 8 December 2018. Retrieved2 July 2017.
  49. ^Walsh, Eamon F. (2009)."X Access Control Extension Specification".Archived from the original on 9 January 2016. Retrieved2 July 2017.
  50. ^"Debian Moves To Non-Root X.Org Server By Default - Phoronix".www.phoronix.com.Archived from the original on 2 April 2018. Retrieved2 April 2018.
  51. ^"Non root Xorg - Gentoo Wiki".wiki.gentoo.org.Archived from the original on 2 April 2018. Retrieved2 April 2018.
  52. ^"X/Rootless - Ubuntu Wiki".wiki.ubuntu.com.Archived from the original on 2 April 2018. Retrieved2 April 2018.
  53. ^"1078902 – Xorg without root rights".bugzilla.redhat.com.Archived from the original on 2 April 2018. Retrieved2 April 2018.
  54. ^"X Clients under Wayland (XWayland)". Wayland project.Archived from the original on 27 August 2022. Retrieved18 July 2014.
  55. ^"ANNOUNCE: xorg-server 1.16.0".freedesktop.org. 17 July 2014.Archived from the original on 8 March 2021. Retrieved14 January 2020.
  56. ^abHøgsberg, Kristian (3 January 2011)."Multiple backends for GTK".Archived from the original on 27 August 2022. Retrieved10 March 2016.
  57. ^"QtWayland".Qt Wiki.Archived from the original on 10 March 2016. Retrieved9 March 2016.
  58. ^"Full Wayland support in GTK+".GNOME wiki.Archived from the original on 7 September 2015. Retrieved10 March 2016.
  59. ^"README.md".wlroots project on GitLab. 2 February 2023.
  60. ^abLarabel, Michael (30 November 2015)."Enlightenment 0.20 Arrives With Full Wayland Support & Better FreeBSD Support".Phoronix.com.Archived from the original on 15 March 2016. Retrieved17 April 2016.
  61. ^"Wayland".www.enlightenment.org.Archived from the original on 9 March 2016. Retrieved8 March 2016.
  62. ^"Plasma 5.21".KDE Community. 16 February 2021.Archived from the original on 8 March 2021. Retrieved9 March 2021.
  63. ^"Index of /sources/mutter-wayland".download.gnome.org.Archived from the original on 21 May 2014. Retrieved27 May 2014.
  64. ^"Bump version to 3.13.1". 30 April 2014.
  65. ^"Sway".swaywm.org.Archived from the original on 20 December 2018. Retrieved20 December 2018.
  66. ^"swaywm/wlroots".GitHub.Archived from the original on 19 December 2018. Retrieved28 October 2018.
  67. ^"swaywm/sway".GitHub.Archived from the original on 28 August 2019. Retrieved28 October 2018.
  68. ^"Hyprland - ArchWiki".wiki.archlinux.org. Retrieved28 January 2024.
  69. ^"Hyprland: Dynamic tiling window compositor with the looks".hyprland.org. Retrieved28 January 2024.
  70. ^"README".gitlab.freedesktop.org. Retrieved4 August 2024.
  71. ^"README file from the Wayland source code repository".freedesktop.org. Retrieved4 August 2024.
  72. ^Larabel, Michael (16 February 2013)."Wayland Begins Porting Process To FreeBSD".Phoronix.com.Archived from the original on 25 April 2016. Retrieved17 April 2016.
  73. ^"Adding Content protection support in drm-backend (!48) · Merge Requests · wayland / weston".GitLab. 6 November 2018.Archived from the original on 27 August 2022. Retrieved27 October 2019.
  74. ^Paalanen, Pekka (10 March 2012)."What does EGL do in the Wayland stack".Archived from the original on 12 October 2016. Retrieved19 May 2016.
  75. ^abLarabel, Michael (6 January 2013)."A Software-Based Pixman Renderer For Wayland's Weston".Phoronix.com.Archived from the original on 25 April 2016. Retrieved17 April 2016.
  76. ^Høgsberg, Kristian (9 December 2010)."Blender3D & cursor clamping".Archived from the original on 25 October 2020. Retrieved14 January 2020.
  77. ^ab"[RFC weston] remote access interface module".freedesktop.org. 18 October 2013.Archived from the original on 25 October 2020. Retrieved14 January 2020.
  78. ^"Maynard announcement". 16 April 2014.Archived from the original on 8 March 2017. Retrieved16 April 2014.
  79. ^ab"Raspberry Pi Case Study". Collabora.Archived from the original on 1 September 2013. Retrieved9 August 2013.
  80. ^ab"Wayland preview". Raspberry Pi. 24 February 2013. Retrieved4 August 2024.
  81. ^abHøgsberg, Kristian (20 May 2014)."Wayland and Weston 1.5.0 is released".wayland-devel (Mailing list).Archived from the original on 19 October 2019. Retrieved14 January 2020.
  82. ^Ådahl, Jonas (12 November 2013)."[RFC] Common input device library". Wayland mailing list.Archived from the original on 25 October 2020. Retrieved14 January 2020.
  83. ^"libinput". Freedesktop.org.Archived from the original on 19 April 2014. Retrieved21 May 2014.
  84. ^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. Retrieved14 January 2020.
  85. ^Hutterer, Peter (22 February 2015)."libinput: the road to 1.0".Archived from the original on 25 October 2020. Retrieved9 November 2019.
  86. ^"Libinput support added to Touchpad KCM". 22 February 2015.Archived from the original on 24 February 2015. Retrieved24 February 2015.
  87. ^Goede, Hans de (23 February 2015)."Libinput now enabled as default xorg driver for F-22 workstation installs".devel@lists.fedoraproject.org (Mailing list). Archived fromthe original on 24 February 2015. Retrieved24 February 2015.
  88. ^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. Retrieved17 April 2016.
  89. ^de Goede, Hans (1 February 2015)."Replacing xorg input - Drivers with libinput"(PDF).Archived(PDF) from the original on 22 November 2021. Retrieved18 April 2016.
  90. ^abDodier-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. Retrieved18 April 2016.
  91. ^"Changes/WaylandByDefault - Fedora Project Wiki".fedoraproject.org.Archived from the original on 27 December 2015. Retrieved9 November 2020.
  92. ^"ReleaseNotes for Ubuntu 17.10". Canonical.Archived from the original on 24 November 2017. Retrieved10 November 2017.
  93. ^"Ubuntu 18.04 will revert to long-in-the-tooth Xorg". Retrieved16 December 2023.
  94. ^"Bionic Beaver 18.04 LTS to use Xorg by default". Canonical.Archived from the original on 18 February 2018. Retrieved18 February 2018.
  95. ^"Ubuntu 21.04 is here".Canonical Ubuntu Blog.Archived from the original on 22 April 2021. Retrieved14 June 2021.
  96. ^"Release notes for Red Hat Enterprise Linux 8.0".Red Hat Customer Portal.Archived from the original on 25 November 2020. Retrieved25 December 2020.
  97. ^"NewInBuster - Debian Wiki".wiki.debian.org.Archived from the original on 25 September 2019. Retrieved15 July 2019.
  98. ^"Slackware ChangeLogs". Slackware Linux.Archived from the original on 30 January 2020. Retrieved26 February 2020.
  99. ^"Manjaro 20.2 Nibia got released". 3 December 2020.Archived from the original on 4 December 2020. Retrieved3 December 2020.
  100. ^"Wayland Live OS Is Now Based On Debian Testing, Working KDE Wayland Support". Phoronix.Archived from the original on 11 August 2019. Retrieved14 January 2020.
  101. ^"RebeccaBlackOS". Sourceforge.Archived from the original on 25 November 2016. Retrieved11 October 2016.
  102. ^"Trying Out Wayland With Rebecca Black". Phoronix.Archived from the original on 18 May 2020. Retrieved14 January 2020.
  103. ^"New Wayland Live CD Has A Lot Of Features". Phoronix.Archived from the original on 18 May 2020. Retrieved14 January 2020.
  104. ^Bassi, Emmanuele (31 January 2011)."ANNOUNCE: Clutter 1.6.0 (stable)".clutter-announce (Mailing list).Archived from the original on 10 March 2016. Retrieved9 March 2016.
  105. ^Bradford, Rob (16 December 2011)."Clutter & Cogl Wayland update". Archived fromthe original on 10 March 2016. Retrieved9 March 2016.The Clutter client side support is basically complete
  106. ^Bassi, Emmanuele (24 September 2013)."ANNOUNCE: Clutter 1.16.0 (stable)".clutter-announce (Mailing list).Archived from the original on 10 March 2016. Retrieved9 March 2016.
  107. ^"Wayland – Enlightenment". Archived fromthe original on 29 March 2013. Retrieved6 March 2013.
  108. ^"GTK+ Roadmap". Retrieved8 March 2016.
  109. ^Lantinga, Sam (8 March 2014)."SDL 2.0.2 RELEASED!". SDL Project.Archived from the original on 15 March 2014. Retrieved18 March 2014.
  110. ^Larabel, Michael (9 January 2016)."SDL 2.0.4 Was Quietly Released Last Week With Wayland & Mir By Default".Phoronix.com.Archived from the original on 16 March 2016. Retrieved17 April 2016.
  111. ^Berglund, Camilla (8 April 2014)."Implementation for Wayland · Issue #106 · glfw/glfw · GitHub".GitHub.Archived from the original on 27 August 2022. Retrieved14 August 2014.
  112. ^"FreeGLUT: Implement initial Wayland support".GitHub.Archived from the original on 10 November 2020. Retrieved7 April 2015.
  113. ^"GNOME Initiatives - Wayland".GNOME Wiki.Archived from the original on 7 March 2016. Retrieved8 March 2016.
  114. ^"KWin/Wayland".KDE Community Wiki.Archived from the original on 10 March 2016. Retrieved8 March 2016.
  115. ^"Enlightenment - Wayland".Enlightenment.org.Archived from the original on 9 March 2016. Retrieved8 March 2016.
  116. ^"Enlightenment DR 0.20.0 Release".Enlightenment.org. Archived fromthe original on 21 June 2018. Retrieved8 March 2016.
  117. ^"The Enlightenment of Wayland".FOSDEM.org.Archived from the original on 9 March 2016. Retrieved8 March 2016.
  118. ^"ReleasePlanning/FeaturesPlans". GNOME Project.Archived from the original on 31 May 2015. Retrieved31 May 2015.
  119. ^"A Look At The Exciting Features/Improvements Of GNOME 3.22". Phoronix.Archived from the original on 12 August 2020. Retrieved14 January 2020.
  120. ^"GNOME Lands Mainline NVIDIA Wayland Support Using EGLStreams". Phoronix.Archived from the original on 8 August 2019. Retrieved14 January 2020.
  121. ^"Plasma's Road to Wayland". 25 July 2014. Archived fromthe original on 27 July 2014. Retrieved25 July 2014.
  122. ^Larabel, Michael (14 June 2013)."KDE 4.11 Beta Released, Works On Wayland".Phoronix.com.Archived from the original on 25 April 2016. Retrieved17 April 2016.
  123. ^Graesslin, Martin (29 June 2015)."Four years later".Archived from the original on 31 March 2016. Retrieved17 April 2016.
  124. ^Sneddon, Joey (17 September 2020)."KDE Plasma 5.20 Looks Like an Awesome Update".OMG! Ubuntu. Retrieved14 June 2024.
  125. ^Nestor, Marius (13 October 2020)."KDE Plasma 5.20 Desktop Environment Officially Released, Here's What's New".9to5Linux. Retrieved14 June 2024.
  126. ^Wallen, Jack (14 February 2024)."The first Linux distribution to deliver a pure KDE Plasma 6 environment is here".ZDNET. Retrieved24 March 2024.
  127. ^Schaller, Christian (3 July 2014)."Wayland in Fedora Update".blogs.gnome.org.Archived from the original on 1 May 2016. Retrieved17 April 2016.
  128. ^"VNC® Wayland Developer Preview". 8 July 2014. Archived fromthe original on 14 July 2014.
  129. ^"RealVNC Wayland developer preview email".freedesktop.org. 9 July 2014.Archived from the original on 25 October 2020. Retrieved14 January 2020.
  130. ^"Maliit Status Update". Posterous. 2 April 2013. Archived fromthe original on 17 May 2013. Retrieved14 October 2013.
  131. ^"More Maliit Keyboard Improvements: QtQuick2". Murray's Blog. 2 April 2013.Archived from the original on 13 October 2013. Retrieved14 October 2013.
  132. ^"Maliit under Wayland". Archived fromthe original on 11 June 2013. Retrieved14 September 2013.
  133. ^"wlterm". Freedesktop.org.Archived from the original on 14 July 2014. Retrieved8 July 2014.
  134. ^abHillesley, p. 3.
  135. ^"Eclipse now runs on Wayland". 18 August 2014.Archived from the original on 23 August 2014. Retrieved17 September 2014.
  136. ^Stone, Daniel (16 February 2016)."Vulkan 1.0 specification released with day-one support for Wayland".Archived from the original on 24 June 2016. Retrieved27 February 2016.
  137. ^"Wayland Backend DRM | IVI Layer Management". GENIVI Alliance. Archived fromthe original on 1 February 2014. Retrieved15 July 2013.
  138. ^"A new release of Raspberry Pi OS". 28 October 2024.
  139. ^"The First Jolla Smartphone Runs With Wayland". LinuxG.net. 14 July 2013.Archived from the original on 28 June 2014. Retrieved8 October 2013.
  140. ^VDVsx [@VDVsx] (13 July 2013)."#sailfishos main components diagram. #Qt5 #Wayland #JollaHQ #Akademy" (Tweet) – viaTwitter.
  141. ^Jolla [@JollaHQ] (13 July 2013)."@faenil @PeppeLaKappa @VDVsx our first Jolla will ship with wayland, yes" (Tweet) – viaTwitter.
  142. ^"IVI/IVI Setup". Tizen Wiki.Archived from the original on 10 February 2017. Retrieved8 April 2013.
  143. ^VanCutsem, Geoffroy (10 July 2013)."[IVI] Tizen IVI 3.0-M1 released".IVI (Mailing list).Archived from the original on 2 October 2013. Retrieved13 July 2013.
  144. ^Amadeo, Ron (12 May 2017)."The Samsung Z4 is Tizen's new flagship smartphone".Ars Technica.Archived from the original on 13 May 2017. Retrieved13 May 2017.
  145. ^Høgsberg, Kristian (3 November 2008)."Premature publicity is better than no publicity".Archived from the original on 28 March 2016. Retrieved6 April 2016.
  146. ^"Interview: Kristian Høgsberg".FOSDEM Archive. 29 January 2012.Archived from the original on 4 March 2016. Retrieved8 March 2016.
  147. ^abHillesley, Richard (13 February 2012)."Wayland - Beyond X".The H Open. Heise Media UK. Archived fromthe original on 6 December 2013. Retrieved8 March 2016.
  148. ^Høgsberg, Kristian."Wayland – A New Display Server for Linux". Linux Plumbers Conference, 2009. Archived fromthe original on 11 August 2017.
  149. ^Jenkins, Evan (22 March 2011)."The Linux graphics stack from X to Wayland".Ars Technica.Archived from the original on 10 April 2016. Retrieved17 April 2016.
  150. ^Larabel, Michael (29 October 2010)."Wayland Becomes A FreeDesktop.org Project".Phoronix.com.Archived from the original on 14 April 2016. Retrieved17 April 2016.
  151. ^Høgsberg, Kristian (29 October 2010)."Moving to freedesktop.org".Archived from the original on 9 November 2012. Retrieved31 July 2013.
  152. ^Høgsberg, Kristian (3 December 2008)."Wayland is now under MIT license".wayland-display-server (Mailing list).Archived from the original on 9 November 2012. Retrieved8 March 2016.
  153. ^Høgsberg, Kristian (22 November 2010)."Wayland license clarification".wayland-devel (Mailing list).Archived from the original on 9 March 2016. Retrieved8 March 2016.
  154. ^Høgsberg, Kristian (19 September 2011)."License update".wayland-devel (Mailing list).Archived from the original on 29 April 2016. Retrieved8 March 2016.
  155. ^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. Retrieved3 July 2013.
  156. ^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. Retrieved3 July 2013.
  157. ^Larabel, Michael (11 April 2013)."Jolla Brings Wayland Atop Android GPU Drivers".Phoronix.com.Archived from the original on 25 April 2016. Retrieved17 April 2016.
  158. ^"Wayland". Wayland.freedesktop.org.Archived from the original on 7 July 2013. Retrieved15 July 2013.
  159. ^Høgsberg, Kristian (9 February 2012)."[ANNOUNCE] Wayland and Weston 0.85.0 released".wayland-devel (Mailing list).Archived from the original on 14 January 2020. Retrieved14 January 2020.
  160. ^Høgsberg, Kristian (24 July 2012)."Wayland and Weston 0.95.0 released".wayland-devel (Mailing list).Archived from the original on 25 October 2020. Retrieved14 January 2020.
  161. ^Høgsberg, Kristian (22 October 2012)."Wayland and Weston 1.0".wayland-devel (Mailing list).Archived from the original on 23 August 2019. Retrieved14 January 2020.
  162. ^Scherschel, Fabian (23 October 2012)."Wayland's 1.0 milestone fixes graphics protocol".The H Open. Heise Media UK. Archived fromthe original on 7 December 2013. Retrieved17 April 2016.
  163. ^Larabel, Michael (16 April 2013)."Wayland 1.1 Officially Released With Weston 1.1".Phoronix.com.Archived from the original on 25 April 2016. Retrieved17 April 2016.
  164. ^Høgsberg, Kristian (15 April 2013)."1.1 Released".wayland-devel (Mailing list).Archived from the original on 27 May 2019. Retrieved14 January 2020.
  165. ^Larabel, Michael (13 July 2013)."Wayland 1.2.0 Released, Joined By Weston Compositor".Phoronix.com.Archived from the original on 14 April 2016. Retrieved17 April 2016.
  166. ^Høgsberg, Kristian (12 July 2013)."Wayland and Weston 1.2.0 released".wayland-devel (Mailing list).Archived from the original on 25 June 2019. Retrieved14 January 2020.
  167. ^Høgsberg, Kristian (11 October 2013)."Wayland and Weston 1.3 releases are out".wayland-devel (Mailing list).Archived from the original on 8 August 2020. Retrieved11 April 2020.
  168. ^Paalanen, Pekka (19 September 2014)."Wayland and Weston 1.6.0 released".wayland-devel (Mailing list).Archived from the original on 27 May 2019. Retrieved14 January 2020.
  169. ^Harrington, Bryce (14 February 2015)."[ANNOUNCE] wayland 1.7.0".wayland-devel (Mailing list).Archived from the original on 5 April 2020. Retrieved14 January 2020.
  170. ^Harrington, Bryce (14 February 2015)."[ANNOUNCE] weston 1.7.0".wayland-devel (Mailing list).Archived from the original on 5 April 2020. Retrieved14 January 2020.
  171. ^Harrington, Bryce (2 June 2015)."[ANNOUNCE] wayland 1.8.0".wayland-devel (Mailing list).Archived from the original on 15 August 2020. Retrieved14 January 2020.
  172. ^Harrington, Bryce (2 June 2015)."[ANNOUNCE] weston 1.8.0".wayland-devel (Mailing list).Archived from the original on 15 August 2020. Retrieved14 January 2020.
  173. ^Harrington, Bryce (21 September 2015)."[ANNOUNCE] wayland 1.9.0".wayland-devel (Mailing list).Archived from the original on 25 October 2020. Retrieved14 January 2020.
  174. ^Harrington, Bryce (21 September 2015)."[ANNOUNCE] weston 1.9.0".wayland-devel (Mailing list).Archived from the original on 21 September 2020. Retrieved14 January 2020.
  175. ^Ådahl, Jonas (24 November 2015)."[ANNOUNCE] wayland-protocols 1.0".wayland-devel (Mailing list).
  176. ^Harrington, Bryce (17 February 2016)."[ANNOUNCE] wayland 1.10.0".wayland-devel (Mailing list).Archived from the original on 17 February 2016. Retrieved17 February 2016.
  177. ^Harrington, Bryce (17 February 2016)."[ANNOUNCE] weston 1.10.0".wayland-devel (Mailing list).Archived from the original on 24 February 2016. Retrieved17 February 2016.
  178. ^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. Retrieved14 January 2020.
  179. ^Larabel, Michael (16 February 2016)."Wayland 1.10 Officially Released".Phoronix.com.Archived from the original on 21 June 2017. Retrieved17 April 2016.
  180. ^Ådahl, Jonas (16 February 2016)."[ANNOUNCE] wayland-protocols 1.1".wayland-devel (Mailing list).
  181. ^Ådahl, Jonas (23 May 2016)."[ANNOUNCE] wayland-protocols 1.4".wayland-devel (Mailing list).
  182. ^Harrington, Bryce (1 June 2016)."[ANNOUNCE] wayland 1.11.0".wayland-devel (Mailing list).Archived from the original on 1 June 2016. Retrieved1 June 2016.
  183. ^Harrington, Bryce (1 June 2016)."[ANNOUNCE] weston 1.11.0".wayland-devel (Mailing list).Archived from the original on 8 October 2016. Retrieved1 June 2016.
  184. ^Ådahl, Jonas (22 July 2016)."[ANNOUNCE] wayland-protocols 1.5".wayland-devel (Mailing list).
  185. ^Ådahl, Jonas (15 August 2016)."[ANNOUNCE] wayland-protocols 1.7".wayland-devel (Mailing list).
  186. ^Harrington, Bryce (21 September 2016)."[ANNOUNCE] wayland 1.12.0".wayland-devel (Mailing list).Archived from the original on 2 April 2017. Retrieved21 September 2016.
  187. ^Harrington, Bryce (21 September 2016)."[ANNOUNCE] weston 1.12.0".wayland-devel (Mailing list).Archived from the original on 8 October 2016. Retrieved21 September 2016.
  188. ^Harrington, Bryce (21 February 2017)."[ANNOUNCE] wayland 1.13.0".wayland-devel (Mailing list).Archived from the original on 24 February 2017. Retrieved30 April 2017.
  189. ^Harrington, Bryce (25 February 2017)."[ANNOUNCE] weston 2.0.0".wayland-devel (Mailing list).Archived from the original on 2 March 2017. Retrieved30 April 2017.
  190. ^Ådahl, Jonas (31 July 2017)."[ANNOUNCE] wayland-protocols 1.10".wayland-devel (Mailing list).
  191. ^Harrington, Bryce (8 August 2017)."[ANNOUNCE] wayland 1.14.0".wayland-devel (Mailing list).Archived from the original on 20 October 2018. Retrieved25 March 2018.
  192. ^Harrington, Bryce (8 August 2017)."[ANNOUNCE] weston 3.0.0".wayland-devel (Mailing list).Archived from the original on 20 October 2018. Retrieved25 March 2018.
  193. ^Ådahl, Jonas (11 October 2017)."[ANNOUNCE] wayland-protocols 1.11".wayland-devel (Mailing list).
  194. ^Ådahl, Jonas (14 February 2018)."[ANNOUNCE] wayland-protocols 1.13".wayland-devel (Mailing list).
  195. ^Foreman, Derek (9 April 2018)."[ANNOUNCE] wayland 1.15.0".wayland-devel (Mailing list).Archived from the original on 10 April 2018. Retrieved15 April 2018.
  196. ^Foreman, Derek (9 April 2018)."[ANNOUNCE] weston 4.0.0".wayland-devel (Mailing list).Archived from the original on 10 April 2018. Retrieved15 April 2018.
  197. ^Ådahl, Jonas (7 May 2018)."[ANNOUNCE] wayland-protocols 1.14".wayland-devel (Mailing list).
  198. ^Ådahl, Jonas (30 July 2018)."[ANNOUNCE] wayland-protocols 1.16".wayland-devel (Mailing list).
  199. ^Foreman, Derek (24 August 2018)."[ANNOUNCE] wayland 1.16.0".wayland-devel (Mailing list).Archived from the original on 28 August 2018. Retrieved30 November 2018.
  200. ^Foreman, Derek (24 August 2018)."[ANNOUNCE] weston 5.0.0".wayland-devel (Mailing list).Archived from the original on 25 August 2018. Retrieved30 November 2018.
  201. ^Ådahl, Jonas (12 November 2018)."[ANNOUNCE] wayland-protocols 1.17".wayland-devel (Mailing list).
  202. ^Foreman, Derek (28 March 2019)."[ANNOUNCE] wayland 1.17.0" (Mailing list).Archived from the original on 25 March 2019. Retrieved17 June 2019.
  203. ^Foreman, Derek (21 March 2019)."[ANNOUNCE] weston 6.0.0" (Mailing list).Archived from the original on 31 March 2019. Retrieved17 June 2019.
  204. ^Ådahl, Jonas (25 July 2019)."[ANNOUNCE] wayland-protocols 1.18".wayland-devel (Mailing list).
  205. ^Ser, Simon (11 February 2020)."[ANNOUNCE] wayland 1.18" (Mailing list).Archived from the original on 1 April 2021. Retrieved12 February 2020.
  206. ^Ser, Simon (23 August 2019)."[ANNOUNCE] weston 7.0.0" (Mailing list).Archived from the original on 25 August 2019. Retrieved22 October 2019.
  207. ^Ser, Simon (24 January 2020)."[ANNOUNCE] weston 8.0.0" (Mailing list). Retrieved12 February 2020.
  208. ^Ser, Simon (4 September 2020)."[ANNOUNCE] weston 9.0.0" (Mailing list).Archived from the original on 29 September 2020. Retrieved30 October 2020.
  209. ^Ådahl, Jonas (29 February 2020)."[ANNOUNCE] wayland-protocols 1.19".wayland-devel (Mailing list).
  210. ^Ådahl, Jonas (29 February 2020)."[ANNOUNCE] wayland-protocols 1.20".wayland-devel (Mailing list).
  211. ^Ser, Simon (27 January 2021)."[ANNOUNCE] wayland 1.19.0".wayland-devel (Mailing list).Archived from the original on 1 February 2021. Retrieved27 January 2021.
  212. ^Ådahl, Jonas (30 April 2021)."[ANNOUNCE] wayland-protocols 1.21".wayland-devel (Mailing list).
  213. ^Ådahl, Jonas (23 November 2021)."[ANNOUNCE] wayland-protocols 1.24".wayland-devel (Mailing list).
  214. ^Ser, Simon (27 January 2021)."[ANNOUNCE] wayland 1.20.0".wayland-devel (Mailing list).Archived from the original on 11 December 2021. Retrieved27 January 2021.
  215. ^Ser, Simon (1 February 2022)."[ANNOUNCE] weston 10.0.0" (Mailing list).Archived from the original on 4 February 2022. Retrieved12 February 2022.
  216. ^Vlad, Marius (2 August 2023)."[ANNOUNCE] weston 10.0.5".wayland-devel (Mailing list).
  217. ^Ådahl, Jonas (28 January 2022)."[ANNOUNCE] wayland-protocols 1.25".wayland-devel (Mailing list).
  218. ^Ser, Simon (30 June 2022)."[ANNOUNCE] wayland 1.21.0".wayland-devel (Mailing list).
  219. ^Ser, Simon (22 September 2022)."[ANNOUNCE] weston 11.0.0".wayland-devel (Mailing list).
  220. ^Vlad, Marius (2 August 2023)."[ANNOUNCE] weston 11.0.3".wayland-devel (Mailing list).
  221. ^Ådahl, Jonas (7 July 2022)."[ANNOUNCE] wayland-protocols 1.26".wayland-devel (Mailing list).
  222. ^Ådahl, Jonas (29 November 2022)."[ANNOUNCE] wayland-protocols 1.31".wayland-devel (Mailing list).
  223. ^Ser, Simon (4 April 2023)."[ANNOUNCE] wayland 1.22.0".wayland-devel (Mailing list). Retrieved9 April 2023.
  224. ^Vlad, Marius (17 May 2023)."[ANNOUNCE] weston 12.0.0".wayland-devel (Mailing list).
  225. ^Vlad, Marius (23 April 2024)."[ANNOUNCE] Weston 12.0.4".wayland-devel (Mailing list).
  226. ^Vlad, Marius (28 November 2023)."[ANNOUNCE] weston 13.0.0".wayland-devel (Mailing list).
  227. ^Vlad, Marius (5 June 2024)."[ANNOUNCE] weston 13.0.3".wayland-devel (Mailing list).
  228. ^Ådahl, Jonas (3 July 2023)."[ANNOUNCE] wayland-protocols 1.32".wayland-devel (Mailing list).
  229. ^Ådahl, Jonas (26 April 2024)."[ANNOUNCE] wayland-protocols 1.36".wayland-devel (Mailing list).
  230. ^Vlad, Marius (4 September 2024)."[ANNOUNCE] weston 14.0.0".wayland-devel (Mailing list).
  231. ^Ådahl, Jonas (31 August 2024)."[ANNOUNCE] wayland-protocols 1.37".wayland-devel (Mailing list).
  232. ^https://lists.freedesktop.org/archives/wayland-devel/2025-April/044161.html

External links

[edit]
OS components
Sound
Graphics
Other
Libraries
Frameworks
Meetings
Desktop
environments

(comparison)
GTK-based
Qt-based
Motif-based
Other
Graphical
shells
X window
managers

(comparison)
Compositing
Stacking
Tiling
Wayland
compositors
Related
Retrieved from "https://en.wikipedia.org/w/index.php?title=Wayland_(protocol)&oldid=1287923093#libinput"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp