1<protocol name="weston_desktop"> 2 3 <interface name="weston_desktop_shell" version="1"> 4 <description summary="create desktop widgets and helpers"> 5 Traditional user interfaces can rely on this interface to define the 6 foundations of typical desktops. Currently it's possible to set up 7 background, panels and locking surfaces. 8 </description> 9 10 <request name="set_background"> 11 <arg name="output" type="object" interface="wl_output"/> 12 <arg name="surface" type="object" interface="wl_surface"/> 13 </request> 14 15 <request name="set_panel"> 16 <arg name="output" type="object" interface="wl_output"/> 17 <arg name="surface" type="object" interface="wl_surface"/> 18 </request> 19 20 <request name="set_lock_surface"> 21 <arg name="surface" type="object" interface="wl_surface"/> 22 </request> 23 24 <request name="unlock"/> 25 26 <request name="set_grab_surface"> 27 <description summary="set grab surface"> 28 The surface set by this request will receive a fake 29 pointer.enter event during grabs at position 0, 0 and is 30 expected to set an appropriate cursor image as described by 31 the grab_cursor event sent just before the enter event. 32 </description> 33 <arg name="surface" type="object" interface="wl_surface"/> 34 </request> 35 36 <!-- We'll fold most of wl_shell into this interface and then 37 they'll share the configure event. --> 38 <event name="configure"> 39 <arg name="edges" type="uint"/> 40 <arg name="surface" type="object" interface="wl_surface"/> 41 <arg name="width" type="int"/> 42 <arg name="height" type="int"/> 43 </event> 44 45 <event name="prepare_lock_surface"> 46 <description summary="tell the client to create, set the lock surface"> 47 Tell the client we want it to create and set the lock surface, which is 48 a GUI asking the user to unlock the screen. The lock surface is 49 announced with 'set_lock_surface'. Whether or not the client actually 50 implements locking, it MUST send 'unlock' request to let the normal 51 desktop resume. 52 </description> 53 </event> 54 55 <event name="grab_cursor"> 56 <description summary="tell client what cursor to show during a grab"> 57 This event will be sent immediately before a fake enter event on the 58 grab surface. 59 </description> 60 <arg name="cursor" type="uint"/> 61 </event> 62 63 <enum name="cursor"> 64 <entry name="none" value="0"/> 65 66 <entry name="resize_top" value="1"/> 67 <entry name="resize_bottom" value="2"/> 68 69 <entry name="arrow" value="3"/> 70 71 <entry name="resize_left" value="4"/> 72 <entry name="resize_top_left" value="5"/> 73 <entry name="resize_bottom_left" value="6"/> 74 75 <entry name="move" value="7"/> 76 77 <entry name="resize_right" value="8"/> 78 <entry name="resize_top_right" value="9"/> 79 <entry name="resize_bottom_right" value="10"/> 80 81 <entry name="busy" value="11"/> 82 </enum> 83 84 <request name="desktop_ready"> 85 <description summary="desktop is ready to be shown"> 86 Tell the server, that enough desktop elements have been drawn 87 to make the desktop look ready for use. During start-up, the 88 server can wait for this request with a black screen before 89 starting to fade in the desktop, for instance. If the client 90 parts of a desktop take a long time to initialize, we avoid 91 showing temporary garbage. 92 </description> 93 </request> 94 95 <enum name="panel_position"> 96 <entry name="top" value="0"/> 97 <entry name="bottom" value="1"/> 98 <entry name="left" value="2"/> 99 <entry name="right" value="3"/> 100 </enum> 101 102 <enum name="error"> 103 <entry name="invalid_argument" value="0" 104 summary="an invalid argument was provided in a request"/> 105 </enum> 106 107 <request name="set_panel_position"> 108 <description summary="set panel position"> 109 Tell the shell which side of the screen the panel is 110 located. This is so that new windows do not overlap the panel 111 and maximized windows maximize properly. 112 </description> 113 114 <arg name="position" type="uint"/> 115 </request> 116 117 </interface> 118 119 <interface name="weston_screensaver" version="1"> 120 <description summary="interface for implementing screensavers"> 121 Only one client can bind this interface at a time. 122 </description> 123 124 <request name="set_surface"> 125 <description summary="set the surface type as a screensaver"> 126 A screensaver surface is normally hidden, and only visible after an 127 idle timeout. 128 </description> 129 130 <arg name="surface" type="object" interface="wl_surface"/> 131 <arg name="output" type="object" interface="wl_output"/> 132 </request> 133 134 </interface> 135</protocol> 136