249 lines
10 KiB
XML
249 lines
10 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="10">
|
|
<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="10">
|
|
<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"/>
|
|
<entry name="maximized" value="16" since="7"/>
|
|
</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"/>
|
|
<entry name="move_window_to_workspace" value="4" since="8"/>
|
|
</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="index" type="uint" summary="one-based position on this output"/>
|
|
<arg name="window_count" type="uint" summary="managed windows, including floating windows"/>
|
|
<arg name="visible" type="uint" summary="one when displayed on its output"/>
|
|
<arg name="focused" type="uint" summary="one when visible on the focused 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>
|
|
<request name="confirm_logout_with_inhibitors" since="4">
|
|
<arg name="serial" type="uint"/>
|
|
<arg name="inhibitor_revision" type="uint"/>
|
|
<arg name="query_token" type="uint"/>
|
|
<arg name="force" type="uint"/>
|
|
</request>
|
|
<event name="toggle_keybinding_guide" since="5">
|
|
<description summary="toggle the shortcut hint on the focused output">
|
|
Explicit requests are independent of the guide-at-login preference.
|
|
</description>
|
|
<arg name="output_name" type="string"/>
|
|
</event>
|
|
<event name="toggle_display_mode" since="6">
|
|
<description summary="toggle the display mode chooser on the focused output"/>
|
|
<arg name="output_name" type="string"/>
|
|
</event>
|
|
<event name="monitor_state_changed" since="6">
|
|
<description summary="physical monitor configuration changed">
|
|
Query the output IPC inventory after reconciliation. This includes
|
|
disabled monitors and mirror targets without a logical wl_output.
|
|
</description>
|
|
</event>
|
|
<event name="window_geometry" since="8">
|
|
<description summary="window layout rectangle for workspace previews">
|
|
Follows its window event inside a snapshot. Coordinates are compositor
|
|
logical coordinates at the layout target, independent of animations.
|
|
Width and height are positive. An omitted event means unavailable geometry.
|
|
</description>
|
|
<arg name="window_hi" type="uint"/>
|
|
<arg name="window_lo" type="uint"/>
|
|
<arg name="x" type="fixed"/>
|
|
<arg name="y" type="fixed"/>
|
|
<arg name="width" type="fixed"/>
|
|
<arg name="height" type="fixed"/>
|
|
</event>
|
|
<request name="move_window_to_workspace" since="8">
|
|
<description summary="move an identified window without switching workspaces">
|
|
Both IDs must exist and belong to the same output. A stale ID is rejected.
|
|
</description>
|
|
<arg name="window_hi" type="uint"/>
|
|
<arg name="window_lo" type="uint"/>
|
|
<arg name="workspace_hi" type="uint"/>
|
|
<arg name="workspace_lo" type="uint"/>
|
|
</request>
|
|
<event name="binding_mode" since="9">
|
|
<description summary="active keyboard binding mode inside a snapshot">
|
|
Sent between snapshot_begin and snapshot_end. An empty name denotes
|
|
the default bindings. Other names must be displayed with an Escape exit
|
|
hint until the next snapshot replaces them.
|
|
</description>
|
|
<arg name="name" type="string"/>
|
|
</event>
|
|
<event name="toggle_launcher" since="10">
|
|
<description summary="toggle the launcher on the focused output"/>
|
|
<arg name="output_name" type="string"/>
|
|
</event>
|
|
<request name="thumbnail" since="10">
|
|
<description summary="request a bounded window thumbnail">
|
|
Only available on the private shell connection. Returns straight RGBA8
|
|
pixels in an anonymous file, at most 320 by 168 pixels. Protected
|
|
surfaces and locked sessions are never captured. The token identifies
|
|
the invocation; the shell must discard replies from closed invocations.
|
|
</description>
|
|
<arg name="token" type="uint"/>
|
|
<arg name="window_hi" type="uint"/>
|
|
<arg name="window_lo" type="uint"/>
|
|
</request>
|
|
<event name="thumbnail" since="10">
|
|
<arg name="token" type="uint"/>
|
|
<arg name="window_hi" type="uint"/>
|
|
<arg name="window_lo" type="uint"/>
|
|
<arg name="width" type="uint"/>
|
|
<arg name="height" type="uint"/>
|
|
<arg name="pixels" type="fd"/>
|
|
</event>
|
|
<event name="thumbnail_unavailable" since="10">
|
|
<arg name="token" type="uint"/>
|
|
<arg name="window_hi" type="uint"/>
|
|
<arg name="window_lo" type="uint"/>
|
|
</event>
|
|
<event name="dismiss_launcher" since="10">
|
|
<description summary="discard launcher state before locking"/>
|
|
</event>
|
|
</interface>
|
|
</protocol>
|