161 lines
5.9 KiB
XML
161 lines
5.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<protocol name="ferese_shell_v1">
|
|
<copyright>
|
|
Copyright 2026 Ferese contributors
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
copy of this software and associated documentation files (the "Software"),
|
|
to deal in the Software without restriction, including without limitation
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
and/or sell copies of the Software, and to permit persons to whom the
|
|
Software is furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
DEALINGS IN THE SOFTWARE.
|
|
</copyright>
|
|
|
|
<interface name="ferese_shell_manager_v1" version="3">
|
|
<description summary="create a capability-scoped Ferese shell controller">
|
|
This private global is visible only to clients granted the shell-control
|
|
capability. It does not assign a Wayland surface role.
|
|
</description>
|
|
|
|
<request name="get_shell">
|
|
<arg name="id" type="new_id" interface="ferese_shell_v1"/>
|
|
</request>
|
|
|
|
<request name="destroy" type="destructor"/>
|
|
</interface>
|
|
|
|
<interface name="ferese_shell_v1" version="3">
|
|
<description summary="managed-window metadata and shell control">
|
|
Window, workspace, and output identifiers are unsigned 64-bit values
|
|
encoded as high and low 32-bit words. Each snapshot atomically replaces
|
|
the prior shell view after snapshot_end.
|
|
</description>
|
|
|
|
<request name="activate_window">
|
|
<arg name="window_hi" type="uint"/>
|
|
<arg name="window_lo" type="uint"/>
|
|
</request>
|
|
|
|
<request name="close_window">
|
|
<arg name="window_hi" type="uint"/>
|
|
<arg name="window_lo" type="uint"/>
|
|
</request>
|
|
|
|
<request name="activate_workspace">
|
|
<arg name="workspace_hi" type="uint"/>
|
|
<arg name="workspace_lo" type="uint"/>
|
|
</request>
|
|
|
|
<request name="enter_overview"/>
|
|
<request name="exit_overview"/>
|
|
|
|
<request name="select_overview_window">
|
|
<arg name="window_hi" type="uint"/>
|
|
<arg name="window_lo" type="uint"/>
|
|
</request>
|
|
|
|
<request name="destroy" type="destructor"/>
|
|
|
|
<enum name="window_state" bitfield="true">
|
|
<entry name="focused" value="1"/>
|
|
<entry name="urgent" value="2"/>
|
|
<entry name="fullscreen" value="4"/>
|
|
<entry name="floating" value="8"/>
|
|
</enum>
|
|
|
|
<enum name="failed_request">
|
|
<entry name="activate_window" value="0"/>
|
|
<entry name="close_window" value="1"/>
|
|
<entry name="select_overview_window" value="2"/>
|
|
<entry name="activate_workspace" value="3"/>
|
|
</enum>
|
|
|
|
<event name="snapshot_begin">
|
|
<arg name="serial" type="uint"/>
|
|
</event>
|
|
|
|
<event name="window">
|
|
<arg name="window_hi" type="uint"/>
|
|
<arg name="window_lo" type="uint"/>
|
|
<arg name="workspace_hi" type="uint"/>
|
|
<arg name="workspace_lo" type="uint"/>
|
|
<arg name="app_id" type="string"/>
|
|
<arg name="title" type="string"/>
|
|
<arg name="state" type="uint" enum="window_state"/>
|
|
</event>
|
|
|
|
<event name="output">
|
|
<arg name="output_hi" type="uint"/>
|
|
<arg name="output_lo" type="uint"/>
|
|
<arg name="name" type="string"/>
|
|
<arg name="active_workspace_hi" type="uint"/>
|
|
<arg name="active_workspace_lo" type="uint"/>
|
|
<arg name="focused" type="uint" summary="one when this is the focused output"/>
|
|
</event>
|
|
|
|
<event name="workspace">
|
|
<arg name="workspace_hi" type="uint"/>
|
|
<arg name="workspace_lo" type="uint"/>
|
|
<arg name="output_hi" type="uint" summary="zero when the workspace has no output"/>
|
|
<arg name="output_lo" type="uint" summary="zero when the workspace has no output"/>
|
|
<arg name="name" type="string"/>
|
|
<arg name="active" type="uint" summary="one when visible on its output"/>
|
|
</event>
|
|
|
|
<event name="snapshot_end">
|
|
<arg name="serial" type="uint"/>
|
|
</event>
|
|
|
|
<event name="overview_state">
|
|
<arg name="active" type="uint" summary="one when overview is active"/>
|
|
</event>
|
|
|
|
<event name="request_failed">
|
|
<arg name="request" type="uint" enum="failed_request"/>
|
|
<arg name="object_hi" type="uint"/>
|
|
<arg name="object_lo" type="uint"/>
|
|
<arg name="reason" type="string"/>
|
|
</event>
|
|
|
|
<event name="capabilities">
|
|
<description summary="marks completion of initial protocol setup"/>
|
|
<arg name="version" type="uint"/>
|
|
</event>
|
|
<event name="config_begin" since="2">
|
|
<description summary="complete validated configuration for live reload">
|
|
Sent only after the compositor has accepted the complete configuration.
|
|
Followed by bounded UTF-8 chunks and config_end. Clients apply only the
|
|
completed source, preserving their current appearance if parsing fails.
|
|
</description>
|
|
</event>
|
|
<event name="config_chunk" since="2">
|
|
<arg name="source" type="string"/>
|
|
</event>
|
|
<event name="config_end" since="2"/>
|
|
<request name="confirm_logout" since="3">
|
|
<arg name="serial" type="uint"/>
|
|
</request>
|
|
<request name="cancel_logout" since="3">
|
|
<arg name="serial" type="uint"/>
|
|
</request>
|
|
<event name="logout_cancelled" since="3">
|
|
<arg name="serial" type="uint"/>
|
|
</event>
|
|
<event name="logout_requested" since="3">
|
|
<arg name="serial" type="uint"/>
|
|
<arg name="output_name" type="string"/>
|
|
</event>
|
|
</interface>
|
|
</protocol>
|