summaryrefslogtreecommitdiff
path: root/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'protocol')
-rw-r--r--protocol/Makefile.am1
-rw-r--r--protocol/README.txt5
-rw-r--r--protocol/desktop-shell.xml119
3 files changed, 125 insertions, 0 deletions
diff --git a/protocol/Makefile.am b/protocol/Makefile.am
new file mode 100644
index 0000000..ff9219a
--- /dev/null
+++ b/protocol/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = desktop-shell.xml
diff --git a/protocol/README.txt b/protocol/README.txt
new file mode 100644
index 0000000..242d1b9
--- /dev/null
+++ b/protocol/README.txt
@@ -0,0 +1,5 @@
+desktop.shell.xml is a straight copy of the one in freedesktop's weston and we
+want to use the same version containing there:
+
+ "protocol: XML files need to be installed and discoverable"
+ https://bugs.freedesktop.org/show_bug.cgi?id=55183
diff --git a/protocol/desktop-shell.xml b/protocol/desktop-shell.xml
new file mode 100644
index 0000000..2b6afbd
--- /dev/null
+++ b/protocol/desktop-shell.xml
@@ -0,0 +1,119 @@
+<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_surface"/>
+ </request>
+
+ <request name="set_panel">
+ <arg name="output" type="object" interface="wl_output"/>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ </request>
+
+ <request name="set_lock_surface">
+ <arg name="surface" type="object" interface="wl_surface"/>
+ </request>
+
+ <request name="unlock"/>
+
+ <request name="set_grab_surface">
+ <description summary="set grab surface">
+ The surface set by this request will receive a fake
+ pointer.enter event during grabs at position 0, 0 and is
+ expected to set an appropriate cursor image as described by
+ the grab_cursor event sent just before the enter event.
+ </description>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ </request>
+
+ <!-- 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_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>
+
+ <event name="grab_cursor">
+ <description summary="tell client what cursor to show during a grab">
+ This event will be sent immediately before a fake enter event on the
+ grab surface.
+ </description>
+ <arg name="cursor" type="uint"/>
+ </event>
+
+ <enum name="cursor">
+ <entry name="none" value="0"/>
+
+ <entry name="resize_top" value="1"/>
+ <entry name="resize_bottom" value="2"/>
+
+ <entry name="arrow" value="3"/>
+
+ <entry name="resize_left" value="4"/>
+ <entry name="resize_top_left" value="5"/>
+ <entry name="resize_bottom_left" value="6"/>
+
+ <entry name="move" value="7"/>
+
+ <entry name="resize_right" value="8"/>
+ <entry name="resize_top_right" value="9"/>
+ <entry name="resize_bottom_right" value="10"/>
+
+ <entry name="busy" value="11"/>
+ </enum>
+ </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_surface"/>
+ <arg name="output" type="object" interface="wl_output"/>
+ </request>
+
+ </interface>
+
+ <interface name="input_panel" version="1">
+ <description summary="interface for implementing keyboards">
+ Only one client can bind this interface at a time.
+ </description>
+
+ <request name="set_surface">
+ <description summary="set the surface type as a keyboard">
+ A keybaord surface is only shown, when a text model is active
+ </description>
+
+ <arg name="surface" type="object" interface="wl_surface"/>
+ <arg name="output" type="object" interface="wl_output"/>
+ </request>
+
+ </interface>
+
+
+</protocol>