From 55c1c7e5bf0a5b9fae04cad352d7fa09b65a8008 Mon Sep 17 00:00:00 2001 From: Nikita Ivanov Date: Fri, 21 Jul 2023 07:25:19 +0200 Subject: Add support for dwl ipc patch https://github.com/djpohly/dwl/wiki/ipc --- protocols/dwl-ipc-unstable-v2.xml | 181 ++++++++++++++++++++++ protocols/net-tapesoftware-dwl-wm-unstable-v1.xml | 164 -------------------- 2 files changed, 181 insertions(+), 164 deletions(-) create mode 100644 protocols/dwl-ipc-unstable-v2.xml delete mode 100644 protocols/net-tapesoftware-dwl-wm-unstable-v1.xml (limited to 'protocols') diff --git a/protocols/dwl-ipc-unstable-v2.xml b/protocols/dwl-ipc-unstable-v2.xml new file mode 100644 index 0000000..0a6e7e5 --- /dev/null +++ b/protocols/dwl-ipc-unstable-v2.xml @@ -0,0 +1,181 @@ + + + + + This protocol allows clients to update and get updates from dwl. + + Warning! The protocol described in this file is experimental and + backward incompatible changes may be made. Backward compatible + changes may be added together with the corresponding interface + version bump. + Backward incompatible changes are done by bumping the version + number in the protocol and interface names and resetting the + interface version. Once the protocol is to be declared stable, + the 'z' prefix and the version number in the protocol and + interface names are removed and the interface version number is + reset. + + + + + This interface is exposed as a global in wl_registry. + + Clients can use this interface to get a dwl_ipc_output. + After binding the client will recieve the dwl_ipc_manager.tags and dwl_ipc_manager.layout events. + The dwl_ipc_manager.tags and dwl_ipc_manager.layout events expose tags and layouts to the client. + + + + + Indicates that the client will not the dwl_ipc_manager object anymore. + Objects created through this instance are not affected. + + + + + + Get a dwl_ipc_outout for the specified wl_output. + + + + + + + + This event is sent after binding. + A roundtrip after binding guarantees the client recieved all tags. + + + + + + + This event is sent after binding. + A roundtrip after binding guarantees the client recieved all layouts. + + + + + + + + Observe and control a dwl output. + + Events are double-buffered: + Clients should cache events and redraw when a dwl_ipc_output.frame event is sent. + + Request are not double-buffered: + The compositor will update immediately upon request. + + + + + + + + + + + Indicates to that the client no longer needs this dwl_ipc_output. + + + + + + Indicates the client should hide or show themselves. + If the client is visible then hide, if hidden then show. + + + + + + Indicates if the output is active. Zero is invalid, nonzero is valid. + + + + + + + Indicates that a tag has been updated. + + + + + + + + + + Indicates a new layout is selected. + + + + + + + Indicates the title has changed. + + + + + + + Indicates the appid has changed. + + + + + + + Indicates the layout has changed. Since layout symbols are dynamic. + As opposed to the zdwl_ipc_manager.layout event, this should take precendence when displaying. + You can ignore the zdwl_ipc_output.layout event. + + + + + + + Indicates that a sequence of status updates have finished and the client should redraw. + + + + + + + + + + + + The tags are updated as follows: + new_tags = (current_tags AND and_tags) XOR xor_tags + + + + + + + + + + + + + + Indicates if the selected client on this output is fullscreen. + + + + + + + Indicates if the selected client on this output is floating. + + + + + diff --git a/protocols/net-tapesoftware-dwl-wm-unstable-v1.xml b/protocols/net-tapesoftware-dwl-wm-unstable-v1.xml deleted file mode 100644 index 4fe5b73..0000000 --- a/protocols/net-tapesoftware-dwl-wm-unstable-v1.xml +++ /dev/null @@ -1,164 +0,0 @@ - - - - Copyright (c) 2021 Raphael Robatsch - - 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 (including the - next paragraph) 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. - - - - - This interface is exposed as a global in the wl_registry. - - Clients can use this protocol to receive updates of the window manager - state (active tags, active layout, and focused window). - Clients can also control this state. - - After binding, the client will receive the available tags and layouts - with the 'tag' and 'layout' events. These can be used in subsequent - dwl_wm_monitor_v1.set_tags/set_layout requests, and to interpret the - dwl_wm_monitor_v1.layout/tag events. - - - - - This request indicates that the client will not use the dwl_wm - object any more. Objects that have been created through this instance - are not affected. - - - - - - Gets a dwl monitor for the specified output. The window manager - state on the output can be controlled using the monitor. - - - - - - - - This event is sent immediately after binding. - A roundtrip after binding guarantees that the client has received all tags. - - - - - - - This event is sent immediately after binding. - A roundtrip after binding guarantees that the client has received all layouts. - - - - - - - - Observes and controls one monitor. - - Events are double-buffered: Clients should cache all events and only - redraw themselves once the 'frame' event is sent. - - Requests are not double-buffered: The compositor will update itself - immediately. - - - - - - - - - - - This request indicates that the client is done with this dwl_monitor. - All further requests are ignored. - - - - - - If 'selected' is nonzero, this monitor is the currently selected one. - - - - - - - Announces the update of a tag. num_clients and focused_client can be - used to draw client indicators. - - - - - - - - - - Announces the update of the selected layout. - - - - - - - Announces the update of the selected client. - - - - - - - Sent after all other events belonging to the status update has been sent. - Clients should redraw themselves now. - - - - - - Changes are applied immediately. - - - - - - - - tags are updated as follows: - new_tags = (current_tags AND and_tags) XOR xor_tags - - Changes are applied immediately. - - - - - - - - Changes are applied immediately. - - - - - -- cgit v1.2.3