1 <protocol name="desktop">
3 <interface name="desktop_shell" version="2">
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.
10 <request name="set_background">
11 <arg name="output" type="object" interface="wl_output"/>
12 <arg name="surface" type="object" interface="wl_surface"/>
15 <request name="set_panel">
16 <arg name="output" type="object" interface="wl_output"/>
17 <arg name="surface" type="object" interface="wl_surface"/>
20 <request name="set_lock_surface">
21 <arg name="surface" type="object" interface="wl_surface"/>
24 <request name="unlock"/>
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.
33 <arg name="surface" type="object" interface="wl_surface"/>
36 <request name="desktop_ready" since="2">
37 <description summary="desktop is ready to be shown">
38 Tell the server, that enough desktop elements have been drawn
39 to make the desktop look ready for use. During start-up, the
40 server can wait for this request with a black screen before
41 starting to fade in the desktop, for instance. If the client
42 parts of a desktop take a long time to initialize, we avoid
43 showing temporary garbage.
47 <!-- We'll fold most of wl_shell into this interface and then
48 they'll share the configure event. -->
49 <event name="configure">
50 <arg name="edges" type="uint"/>
51 <arg name="surface" type="object" interface="wl_surface"/>
52 <arg name="width" type="int"/>
53 <arg name="height" type="int"/>
56 <event name="prepare_lock_surface">
57 <description summary="tell the client to create, set the lock surface">
58 Tell the shell we want it to create and set the lock surface, which is
59 a GUI asking the user to unlock the screen. The lock surface is
60 announced with 'set_lock_surface'. Whether or not the shell actually
61 implements locking, it MUST send 'unlock' request to let the normal
66 <event name="grab_cursor">
67 <description summary="tell client what cursor to show during a grab">
68 This event will be sent immediately before a fake enter event on the
71 <arg name="cursor" type="uint"/>
75 <entry name="none" value="0"/>
77 <entry name="resize_top" value="1"/>
78 <entry name="resize_bottom" value="2"/>
80 <entry name="arrow" value="3"/>
82 <entry name="resize_left" value="4"/>
83 <entry name="resize_top_left" value="5"/>
84 <entry name="resize_bottom_left" value="6"/>
86 <entry name="move" value="7"/>
88 <entry name="resize_right" value="8"/>
89 <entry name="resize_top_right" value="9"/>
90 <entry name="resize_bottom_right" value="10"/>
92 <entry name="busy" value="11"/>
96 <interface name="screensaver" version="1">
97 <description summary="interface for implementing screensavers">
98 Only one client can bind this interface at a time.
101 <request name="set_surface">
102 <description summary="set the surface type as a screensaver">
103 A screensaver surface is normally hidden, and only visible after an
107 <arg name="surface" type="object" interface="wl_surface"/>
108 <arg name="output" type="object" interface="wl_output"/>