Kristian Høgsberg | 7584062 | 2011-09-06 13:48:16 -0400 | [diff] [blame] | 1 | <protocol name="desktop"> |
| 2 | |
Jonny Lamb | 765760d | 2014-08-20 15:53:19 +0200 | [diff] [blame^] | 3 | <interface name="desktop_shell" version="3"> |
Tiago Vignatti | 7bef066 | 2012-04-16 17:31:40 +0300 | [diff] [blame] | 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 | |
Kristian Høgsberg | 7584062 | 2011-09-06 13:48:16 -0400 | [diff] [blame] | 10 | <request name="set_background"> |
Benjamin Franzke | d0f79ab | 2011-11-22 12:43:52 +0100 | [diff] [blame] | 11 | <arg name="output" type="object" interface="wl_output"/> |
Kristian Høgsberg | 962342c | 2012-06-26 16:29:50 -0400 | [diff] [blame] | 12 | <arg name="surface" type="object" interface="wl_surface"/> |
Kristian Høgsberg | 7584062 | 2011-09-06 13:48:16 -0400 | [diff] [blame] | 13 | </request> |
| 14 | |
| 15 | <request name="set_panel"> |
Benjamin Franzke | d0f79ab | 2011-11-22 12:43:52 +0100 | [diff] [blame] | 16 | <arg name="output" type="object" interface="wl_output"/> |
Kristian Høgsberg | af7b1ff | 2012-06-26 21:19:23 -0400 | [diff] [blame] | 17 | <arg name="surface" type="object" interface="wl_surface"/> |
Kristian Høgsberg | 7584062 | 2011-09-06 13:48:16 -0400 | [diff] [blame] | 18 | </request> |
| 19 | |
Pekka Paalanen | 9ef3e01 | 2011-11-15 13:34:48 +0200 | [diff] [blame] | 20 | <request name="set_lock_surface"> |
Kristian Høgsberg | 730c94d | 2012-06-26 21:44:35 -0400 | [diff] [blame] | 21 | <arg name="surface" type="object" interface="wl_surface"/> |
Pekka Paalanen | 9ef3e01 | 2011-11-15 13:34:48 +0200 | [diff] [blame] | 22 | </request> |
| 23 | |
| 24 | <request name="unlock"/> |
| 25 | |
Ander Conselvan de Oliveira | b9d2a0f | 2012-06-28 18:08:05 +0300 | [diff] [blame] | 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> |
Kristian Høgsberg | d56bd90 | 2012-06-05 09:58:51 -0400 | [diff] [blame] | 33 | <arg name="surface" type="object" interface="wl_surface"/> |
| 34 | </request> |
| 35 | |
Kristian Høgsberg | 7584062 | 2011-09-06 13:48:16 -0400 | [diff] [blame] | 36 | <!-- We'll fold most of wl_shell into this interface and then |
| 37 | they'll share the configure event. --> |
| 38 | <event name="configure"> |
Kristian Høgsberg | 7584062 | 2011-09-06 13:48:16 -0400 | [diff] [blame] | 39 | <arg name="edges" type="uint"/> |
Kristian Høgsberg | 962342c | 2012-06-26 16:29:50 -0400 | [diff] [blame] | 40 | <arg name="surface" type="object" interface="wl_surface"/> |
Kristian Høgsberg | 7584062 | 2011-09-06 13:48:16 -0400 | [diff] [blame] | 41 | <arg name="width" type="int"/> |
| 42 | <arg name="height" type="int"/> |
| 43 | </event> |
| 44 | |
Tiago Vignatti | 7bef066 | 2012-04-16 17:31:40 +0300 | [diff] [blame] | 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 |
| 51 | desktop resume. |
| 52 | </description> |
| 53 | </event> |
Ander Conselvan de Oliveira | b9d2a0f | 2012-06-28 18:08:05 +0300 | [diff] [blame] | 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> |
Jonas Ådahl | 9b05909 | 2014-05-10 10:43:34 +0200 | [diff] [blame] | 83 | |
| 84 | <!-- Version 2 additions --> |
| 85 | |
| 86 | <request name="desktop_ready" since="2"> |
| 87 | <description summary="desktop is ready to be shown"> |
| 88 | Tell the server, that enough desktop elements have been drawn |
| 89 | to make the desktop look ready for use. During start-up, the |
| 90 | server can wait for this request with a black screen before |
| 91 | starting to fade in the desktop, for instance. If the client |
| 92 | parts of a desktop take a long time to initialize, we avoid |
| 93 | showing temporary garbage. |
| 94 | </description> |
| 95 | </request> |
| 96 | |
Jonny Lamb | 765760d | 2014-08-20 15:53:19 +0200 | [diff] [blame^] | 97 | <!-- Version 3 additions --> |
| 98 | |
| 99 | <enum name="panel_position"> |
| 100 | <entry name="top" value="0"/> |
| 101 | <entry name="bottom" value="1"/> |
| 102 | <entry name="left" value="2"/> |
| 103 | <entry name="right" value="3"/> |
| 104 | </enum> |
| 105 | |
| 106 | <enum name="error"> |
| 107 | <entry name="invalid_argument" value="0" |
| 108 | summary="an invalid argument was provided in a request"/> |
| 109 | </enum> |
| 110 | |
| 111 | <request name="set_panel_position" since="3"> |
| 112 | <arg name="position" type="uint"/> |
| 113 | <description summary="set panel position"> |
| 114 | Tell the shell which side of the screen the panel is |
| 115 | located. This is so that new windows do not overlap the panel |
| 116 | and maximized windows maximize properly. |
| 117 | </description> |
| 118 | </request> |
| 119 | |
Kristian Høgsberg | 7584062 | 2011-09-06 13:48:16 -0400 | [diff] [blame] | 120 | </interface> |
| 121 | |
Pekka Paalanen | 6e16811 | 2011-11-24 11:34:05 +0200 | [diff] [blame] | 122 | <interface name="screensaver" version="1"> |
Tiago Vignatti | 7bef066 | 2012-04-16 17:31:40 +0300 | [diff] [blame] | 123 | <description summary="interface for implementing screensavers"> |
| 124 | Only one client can bind this interface at a time. |
| 125 | </description> |
Pekka Paalanen | 6e16811 | 2011-11-24 11:34:05 +0200 | [diff] [blame] | 126 | |
Pekka Paalanen | 6e16811 | 2011-11-24 11:34:05 +0200 | [diff] [blame] | 127 | <request name="set_surface"> |
Tiago Vignatti | 7bef066 | 2012-04-16 17:31:40 +0300 | [diff] [blame] | 128 | <description summary="set the surface type as a screensaver"> |
| 129 | A screensaver surface is normally hidden, and only visible after an |
| 130 | idle timeout. |
| 131 | </description> |
| 132 | |
Kristian Høgsberg | 1a73a63 | 2012-06-26 22:15:53 -0400 | [diff] [blame] | 133 | <arg name="surface" type="object" interface="wl_surface"/> |
Pekka Paalanen | 6e16811 | 2011-11-24 11:34:05 +0200 | [diff] [blame] | 134 | <arg name="output" type="object" interface="wl_output"/> |
| 135 | </request> |
| 136 | |
| 137 | </interface> |
Kristian Høgsberg | 7584062 | 2011-09-06 13:48:16 -0400 | [diff] [blame] | 138 | </protocol> |