This directory contains exo-specific extensions to the Wayland protocol.

To begin with, we recommend this link for more about wayland basics. The short summary is that:

  • wl_surface is the compositing window primitive. It is capable of receiving a series of buffers representing contents. It only provides basic functionality. Other functionality like pip/decorations are implemented through extensions.
  • It is possible to extend a wl_surface as xdg_surface via xdg_wm_base.get_surface. This extension is not permanent: it is possible to destroy and/or recreate the xdg_surface.
  • Once an xdg_surface is created, it can be assigned a role: xdg_toplevel or xdg_popup.
  • exo has extensions for each of these primitives that implement aura shell (ash) specific functionalities:
    • wl_surface is extended by zaura_surface
    • xdg_toplevel is extended by zaura_toplevel
    • xdg_popup is extended by zaura_popup