| interface | use |
| wl_compositor | create wl_surface objects |
| wl_subcompositor | create subwindows |
| wl_shm | create buffers and buffer factories |
| wl_seat | create the unique "seat" |
| wl_data_device | support of copy/paste/drag-n-drop |
| wl_output | received once for each display |
| xdg_wm_base | create mapped windows |
| gtk_shell1 | signals Mutter is in use + titlebar gestures |
| weston_desktop_shell | signals Weston is in use |
| org_kde_plasma_shell | signals KDE/Plasma is in use |
| zwp_text_input_manager_v3 | interface with Text Input Methods |
| zxdg_decoration_manager_v1 | select between CSD and SSD modes |
Wayland compositors typically support several other protocols (e.g., \c zxdg_output_manager_v1)
that FLTK does not use.
Each time \c registry_handle_global runs with an \c interface from the table above, FLTK calls
\c wl_registry_bind() which returns a pointer to a Wayland structure that will be the client's access
point to the corresponding Wayland protocol or system feature. This pointer is stored in a dedicated
member variable of the unique \c Fl_Wayland_Screen_Driver object of an FLTK app, or of another object
accessible from this object.
For example, when \c interface equals \c "wl_compositor", the value returned by
\c wl_registry_bind() is stored as member \c wl_compositor of the
\c Fl_Wayland_Screen_Driver object.
\c registry_handle_global() also identifies whether the Mutter, Weston, or KWin compositor is connected
and stores this information in static member variable \c Fl_Wayland_Screen_Driver::compositor.
Wayland calls \c registry_handle_global() with its parameter \c interface equals to
"wl_output" once for each screen connected to the system. Each time, an object of type
|
The Wayland book
|
Extensive introduction to Wayland programming written by the author of the sway
compositor, unfortunately unachieved.
|
|
|
Wayland Explorer
|
Documentation of all Wayland protocols, both stable and unstable. A language-independent syntax is used which makes function names usable from C or C++ not always obvious. Some useful functions seem undocumented here for an unclear reason.
|
|
|
Wayland Protocol Specification
|
Documentation for all functions of the Wayland core protocol.
|
|
|
Wayland clipboard and drag & drop
|
Detailed explanation of how clipboard and drag-and-drop work under Wayland.
|
|
|
Wayland and input methods
|
Blog article introducing to the issue of text input methods under Wayland.
|
|
|
Input Method Hub
|
Entry page for input method support giving newcomers a first understanding of what input
methods are and how they are implemented in Wayland.
|
|
*/