<protocol name="weston_desktop"> <interface name="weston_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_surface"/> </request> <request name="set_panel"> <arg name="output" type="object" interface="wl_output"/> <arg name="surface" type="object" interface="wl_surface"/> </request> <request name="set_lock_surface"> <arg name="surface" type="object" interface="wl_surface"/> </request> <request name="unlock"/> <request name="set_grab_surface"> <description summary="set grab surface"> The surface set by this request will receive a fake pointer.enter event during grabs at position 0, 0 and is expected to set an appropriate cursor image as described by the grab_cursor event sent just before the enter event. </description> <arg name="surface" type="object" interface="wl_surface"/> </request> <!-- 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_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 client 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 client actually implements locking, it MUST send 'unlock' request to let the normal desktop resume. </description> </event> <event name="grab_cursor"> <description summary="tell client what cursor to show during a grab"> This event will be sent immediately before a fake enter event on the grab surface. </description> <arg name="cursor" type="uint"/> </event> <enum name="cursor"> <entry name="none" value="0"/> <entry name="resize_top" value="1"/> <entry name="resize_bottom" value="2"/> <entry name="arrow" value="3"/> <entry name="resize_left" value="4"/> <entry name="resize_top_left" value="5"/> <entry name="resize_bottom_left" value="6"/> <entry name="move" value="7"/> <entry name="resize_right" value="8"/> <entry name="resize_top_right" value="9"/> <entry name="resize_bottom_right" value="10"/> <entry name="busy" value="11"/> </enum> <request name="desktop_ready"> <description summary="desktop is ready to be shown"> Tell the server, that enough desktop elements have been drawn to make the desktop look ready for use. During start-up, the server can wait for this request with a black screen before starting to fade in the desktop, for instance. If the client parts of a desktop take a long time to initialize, we avoid showing temporary garbage. </description> </request> <enum name="panel_position"> <entry name="top" value="0"/> <entry name="bottom" value="1"/> <entry name="left" value="2"/> <entry name="right" value="3"/> </enum> <enum name="error"> <entry name="invalid_argument" value="0" summary="an invalid argument was provided in a request"/> </enum> <request name="set_panel_position"> <description summary="set panel position"> Tell the shell which side of the screen the panel is located. This is so that new windows do not overlap the panel and maximized windows maximize properly. </description> <arg name="position" type="uint"/> </request> </interface> <interface name="weston_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_surface"/> <arg name="output" type="object" interface="wl_output"/> </request> </interface> </protocol>