|
| 1 | +<protocol name="wayfire_shell"> |
| 2 | + <interface name="zwf_shell_manager_v2" version="1"> |
| 3 | + <description summary="DE integration"> |
| 4 | + This protocol provides additional events and requests for special DE |
| 5 | + clients like panels, docks, etc. |
| 6 | + |
| 7 | + It is meant as an addition for protocols like wlr-layer-shell. |
| 8 | + </description> |
| 9 | + |
| 10 | + <request name="get_wf_output"> |
| 11 | + <description summary="Create a wf_output from the given output"/> |
| 12 | + <arg name="output" type="object" interface="wl_output"/> |
| 13 | + <arg name="id" type="new_id" interface="zwf_output_v2"/> |
| 14 | + </request> |
| 15 | + |
| 16 | + <request name="get_wf_surface"> |
| 17 | + <description summary="Create a wf_surface from the given wl_surface"/> |
| 18 | + <arg name="surface" type="object" interface="wl_surface"/> |
| 19 | + <arg name="id" type="new_id" interface="zwf_surface_v2"/> |
| 20 | + </request> |
| 21 | + </interface> |
| 22 | + |
| 23 | + <interface name="zwf_output_v2" version="1"> |
| 24 | + <description summary="A wrapper for wl_output"> |
| 25 | + Represents a single output. |
| 26 | + Each output is managed independently from the others. |
| 27 | + </description> |
| 28 | + |
| 29 | + <event name="enter_fullscreen"> |
| 30 | + <description summary="A window was fullscreened"> |
| 31 | + Emitted when a window gets fullscreened on the given output. In this |
| 32 | + mode, windows in the TOP layer are not visible. |
| 33 | + |
| 34 | + There will be no two consecutive enter_fullscreen calls, i.e. if |
| 35 | + fullscreen mode is entered it will be exited before going into this mode |
| 36 | + again. |
| 37 | + </description> |
| 38 | + </event> |
| 39 | + |
| 40 | + <event name="leave_fullscreen"> |
| 41 | + <description summary="A window was fullscreened"> |
| 42 | + Emitted when the output is no longer in fullscreen mode. Each |
| 43 | + leave_fullscreen has a corresponding enter_fullscreen before it. |
| 44 | + </description> |
| 45 | + </event> |
| 46 | + |
| 47 | + <request name="inhibit_output"> |
| 48 | + <description summary="Don't render the output"> |
| 49 | + Request the compositor to not render the output, so the output usually |
| 50 | + is cleared to black color. To enable output rendering again, call |
| 51 | + inhibit_output_done. |
| 52 | + </description> |
| 53 | + </request> |
| 54 | + |
| 55 | + <request name="inhibit_output_done"> |
| 56 | + <description summary="Render the output"> |
| 57 | + Stop inhibiting the output. This must be called as many times as |
| 58 | + inhibit_output was called to actually uninhibit rendering. |
| 59 | + |
| 60 | + The inhibit/inhibit_done requests can be called multiple times, even |
| 61 | + from different apps, so don't assume that a call to inhibit_done would |
| 62 | + always mean actually starting the rendering process. |
| 63 | + </description> |
| 64 | + </request> |
| 65 | + |
| 66 | + <enum name="hotspot_edge"> |
| 67 | + <entry name="top" value="1"/> |
| 68 | + <entry name="bottom" value="2"/> |
| 69 | + <entry name="left" value="4"/> |
| 70 | + <entry name="right" value="8"/> |
| 71 | + </enum> |
| 72 | + |
| 73 | + <request name="create_hotspot"> |
| 74 | + <description summary="Create a hotspot on the output"> |
| 75 | + A hotspot on the output is an edge or a corner region of the |
| 76 | + output where the mouse has been residing for a given amount of time. |
| 77 | + |
| 78 | + The hotspot can be used for example for autohiding panels, where the |
| 79 | + panel is shown when the mouse hovers on the edge of the output for a |
| 80 | + specific amount of time. |
| 81 | + </description> |
| 82 | + |
| 83 | + <arg name="hotspot" type="uint" summary="bitwise or of the edges the output"/> |
| 84 | + <arg name="threshold" type="uint" summary="distance from the edge of the output"/> |
| 85 | + <arg name="timeout" type="uint" summary="minimum time for the mouse to be in the hotspot"/> |
| 86 | + <arg name="id" type="new_id" interface="zwf_hotspot_v2"/> |
| 87 | + </request> |
| 88 | + </interface> |
| 89 | + |
| 90 | + <interface name="zwf_hotspot_v2" version="1"> |
| 91 | + <description summary="An edge of the output defined by 1 or 2 edges"/> |
| 92 | + |
| 93 | + <event name="triggered"> |
| 94 | + <description summary="Hotspot was triggered"> |
| 95 | + Means that the mouse was inside the indicated hotspot for the given |
| 96 | + amount of time. |
| 97 | + |
| 98 | + Emitted at most once for each entry of the mouse inside the hotspot. |
| 99 | + </description> |
| 100 | + </event> |
| 101 | + </interface> |
| 102 | + |
| 103 | + <interface name="zwf_surface_v2" version="1"> |
| 104 | + <description summary="A special surface"/> |
| 105 | + <request name="interactive_move"> |
| 106 | + <description summary="Start and interactive move of the surface"/> |
| 107 | + </request> |
| 108 | + </interface> |
| 109 | + |
| 110 | +</protocol> |
0 commit comments