summaryrefslogtreecommitdiff
path: root/protocol/desktop-shell.xml
blob: 836b12783750aab3d123a3648d62d7aefb29d90c (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
<protocol name="desktop">

  <interface name="desktop_shell" version="1">
    <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>

    <!-- 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. -->
    <event name="prepare_lock_surface"/>
  </interface>

  <!-- Only one client can bind this interface at a time. -->
  <interface name="screensaver" version="1">

    <!-- Set the surface type as a screensaver for a particular output.
         A screensaver surface is normally hidden, and only visible after
         an idle timeout. -->
    <request name="set_surface">
      <arg name="surface" type="object" interface="wl_shell_surface"/>
      <arg name="output" type="object" interface="wl_output"/>
    </request>

  </interface>

</protocol>