Product SiteDocumentation Site

Documentation 1.0

Wayland

The Wayland display server

Edition 0

Wayland logo

Kristian Høgsberg

Intel Corporation

Legal Notice

Copyright © 2012 Kristian Høgsberg, Intel Corporation This material may only be distributed subject to the terms and conditions set forth in the GNU Free Documentation License (GFDL), V1.2 or later (the latest version is presently available at http://www.gnu.org/licenses/fdl.txt).
Abstract
Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol. The compositor can be a standalone display server running on Linux kernel modesetting and evdev input devices, an X application, or a wayland client itself. The clients can be traditional applications, X servers (rootless or fullscreen) or other display servers.

1. Wayland Overview
1.1. Replacing X11
1.2. Make the compositing manager the display server
2. Wayland Architecture
2.1. X vs. Wayland Architecture
2.2. Wayland Rendering
2.3. Hardware Enabling for Wayland
3. The Wayland Protocol
3.1. Basic Principles
3.2. Code Generation
3.3. Wire Format
3.4. Interfaces
3.5. Connect Time
3.6. Security and Authentication
3.7. Creating Objects
3.8. Compositor
3.9. Surface
3.10. Input
3.11. Output
3.12. Data sharing between client (selection and drag and drop)
4. Wayland Library
4.1. Client API
5. Types of Compositors
5.1. System Compositor
5.2. Session Compositor
5.3. Embedding Compositor
A. Wayland Protocol Specification
A.1. wl_display - core global object
A.2. wl_registry - global registry object
A.3. wl_callback
A.4. wl_compositor - the compositor singleton
A.5. wl_shm_pool - a shared memory pool
A.6. wl_shm - shared memory support
A.7. wl_buffer - content for a wl_surface
A.8. wl_data_offer - offer to transfer data
A.9. wl_data_source - offer to transfer data
A.10. wl_data_device
A.11. wl_data_device_manager - data transfer interface
A.12. wl_shell
A.13. wl_shell_surface - desktop style meta data interface
A.14. wl_surface - an onscreen surface
A.15. wl_seat - seat
A.16. wl_pointer
A.17. wl_keyboard - keyboard input device
A.18. wl_touch - touch screen input device
A.19. wl_output - compositor output region
A.20. wl_region - region interface