1
<protocol name="desktop">
3
<interface name="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.
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
<!-- 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"/>
45
<event name="prepare_lock_surface">
46
<description summary="tell the client to create, set the lock surface">
47
Tell the shell 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 shell actually
50
implements locking, it MUST send 'unlock' request to let the normal
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
60
<arg name="cursor" type="uint"/>
64
<entry name="none" value="0"/>
66
<entry name="resize_top" value="1"/>
67
<entry name="resize_bottom" value="2"/>
69
<entry name="arrow" value="3"/>
71
<entry name="resize_left" value="4"/>
72
<entry name="resize_top_left" value="5"/>
73
<entry name="resize_bottom_left" value="6"/>
75
<entry name="move" value="7"/>
77
<entry name="resize_right" value="8"/>
78
<entry name="resize_top_right" value="9"/>
79
<entry name="resize_bottom_right" value="10"/>
81
<entry name="busy" value="11"/>
85
<interface name="screensaver" version="1">
86
<description summary="interface for implementing screensavers">
87
Only one client can bind this interface at a time.
90
<request name="set_surface">
91
<description summary="set the surface type as a screensaver">
92
A screensaver surface is normally hidden, and only visible after an
96
<arg name="surface" type="object" interface="wl_surface"/>
97
<arg name="output" type="object" interface="wl_output"/>
102
<interface name="input_panel" version="1">
103
<description summary="interface for implementing keyboards">
104
Only one client can bind this interface at a time.
107
<request name="get_input_panel_surface">
108
<arg name="id" type="new_id" interface="input_panel_surface"/>
109
<arg name="surface" type="object" interface="wl_surface"/>
113
<interface name="input_panel_surface" version="1">
114
<request name="set_toplevel">
115
<description summary="set the surface type as a keyboard">
116
A keybaord surface is only shown, when a text model is active
120
<request name="set_transient">
121
<description summary="set the surface type as a keyboard">
122
A keyboard surface is only shown, when a text model is active
125
<arg name="parent" type="object" interface="wl_surface"/>
126
<arg name="x" type="int"/>
127
<arg name="y" type="int"/>