<protocol name="desktop"> <interface name="desktop_shell" version="1"> <description summary="create desktop widgets and helpers"> Traditional user interfaces can rely on this interface to define the foundations of typical desktops. Currently it's possible to set up background, panels and locking surfaces. </description> <request name="set_background"> <arg name="output" type="object" interface="wl_output"/> <arg name="surface" type="object" interface="wl_shell_surface"/> </request> <request name="set_panel"> <arg name="output" type="object" interface="wl_output"/> <arg name="surface" type="object" interface="wl_shell_surface"/> </request> <request name="set_lock_surface"> <arg name="surface" type="object" interface="wl_shell_surface"/> </request> <request name="unlock"/> <!-- We'll fold most of wl_shell into this interface and then they'll share the configure event. --> <event name="configure"> <arg name="edges" type="uint"/> <arg name="surface" type="object" interface="wl_shell_surface"/> <arg name="width" type="int"/> <arg name="height" type="int"/> </event> <event name="prepare_lock_surface"> <description summary="tell the client to create, set the lock surface"> Tell the shell we want it to create and set the lock surface, which is a GUI asking the user to unlock the screen. The lock surface is announced with 'set_lock_surface'. Whether or not the shell actually implements locking, it MUST send 'unlock' request to let the normal desktop resume. </description> </event> </interface> <interface name="screensaver" version="1"> <description summary="interface for implementing screensavers"> Only one client can bind this interface at a time. </description> <request name="set_surface"> <description summary="set the surface type as a screensaver"> A screensaver surface is normally hidden, and only visible after an idle timeout. </description> <arg name="surface" type="object" interface="wl_shell_surface"/> <arg name="output" type="object" interface="wl_output"/> </request> </interface> </protocol>