summaryrefslogtreecommitdiff
path: root/protocol/desktop-shell.xml
blob: d2bb3eb02391226177c30ca8d6ba16e98a457699 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<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>