mirror of
https://github.com/swaywm/sway.git
synced 2024-11-30 03:41:27 +00:00
139 lines
4.6 KiB
XML
139 lines
4.6 KiB
XML
<protocol name="desktop">
|
|
|
|
<interface name="desktop_shell" version="3">
|
|
<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 client 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 client 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>
|
|
|
|
<!-- Version 2 additions -->
|
|
|
|
<request name="desktop_ready" since="2">
|
|
<description summary="desktop is ready to be shown">
|
|
Tell the server, that enough desktop elements have been drawn
|
|
to make the desktop look ready for use. During start-up, the
|
|
server can wait for this request with a black screen before
|
|
starting to fade in the desktop, for instance. If the client
|
|
parts of a desktop take a long time to initialize, we avoid
|
|
showing temporary garbage.
|
|
</description>
|
|
</request>
|
|
|
|
<!-- Version 3 additions -->
|
|
|
|
<enum name="panel_position">
|
|
<entry name="top" value="0"/>
|
|
<entry name="bottom" value="1"/>
|
|
<entry name="left" value="2"/>
|
|
<entry name="right" value="3"/>
|
|
</enum>
|
|
|
|
<enum name="error">
|
|
<entry name="invalid_argument" value="0"
|
|
summary="an invalid argument was provided in a request"/>
|
|
</enum>
|
|
|
|
<request name="set_panel_position" since="3">
|
|
<arg name="position" type="uint"/>
|
|
<description summary="set panel position">
|
|
Tell the shell which side of the screen the panel is
|
|
located. This is so that new windows do not overlap the panel
|
|
and maximized windows maximize properly.
|
|
</description>
|
|
</request>
|
|
|
|
</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>
|
|
</protocol>
|