File feature-virt-desk-per-scr.patch of Package plasma-wayland-protocols
From d38734030afdc21c27d824c69f7c4c950a8518bb Mon Sep 17 00:00:00 2001
From: Hynek Schlindenbuch <schlindenbuch.h@seznam.cz>
Date: Sat, 13 Dec 2025 08:59:59 +0100
Subject: [PATCH 1/3] add per-output active virtual desktop
---
.../org-kde-plasma-virtual-desktop.xml | 62 ++++++++++++++++++-
1 file changed, 60 insertions(+), 2 deletions(-)
diff --git a/src/protocols/org-kde-plasma-virtual-desktop.xml b/src/protocols/org-kde-plasma-virtual-desktop.xml
index 5d9f825..b3e640a 100644
--- a/src/protocols/org-kde-plasma-virtual-desktop.xml
+++ b/src/protocols/org-kde-plasma-virtual-desktop.xml
@@ -6,7 +6,7 @@
SPDX-License-Identifier: LGPL-2.1-or-later
]]></copyright>
-<interface name="org_kde_plasma_virtual_desktop_management" version="3">
+<interface name="org_kde_plasma_virtual_desktop_management" version="4">
<request name="get_virtual_desktop">
<description summary="get the org_kde_plasma_virtual_desktop interface for a desktop">
Given the id of a particular virtual desktop, get the corresponding org_kde_plasma_virtual_desktop which represents only the desktop with that id.
@@ -63,10 +63,68 @@
<event name="rows" since="2">
<arg name="rows" type="uint" summary="Number of rows the virtual desktops are laid out into."/>
</event>
+
+ <event name="output_added" since="4">
+ <description summary="A new output has been added"></description>
+ <arg name="output" type="new_id" interface="org_kde_plasma_output_virtual_desktop" summary="added output" />
+ </event>
+</interface>
+
+<interface name="org_kde_plasma_output_virtual_desktop" version="4">
+ <description summary="maps output to active virtual desktop">
+ This interface maps an output to its active virtual desktop.
+ The server may allow each output to have a different virtual desktop,
+ or it may enforce all outputs to have the same desktop.
+ </description>
+
+ <request name="request_activate_desktop">
+ <description summary="Requests a desktop to be activated on the output">
+ Request the server to activate a given desktop on this output.
+ This may affect other outputs as well.
+ </description>
+ <arg name="desktop_id" type="string" summary="Id of desktop to activate"/>
+ </request>
+
+ <event name="uuid">
+ <description summary="A unique id for this outputdevice">
+ The uuid can be used to identify the output. It's controlled by
+ the server entirely. The server should make sure the uuid is
+ persistent across restarts. An empty uuid is considered invalid.
+ </description>
+ <arg name="uuid" type="string" summary="output devices ID"/>
+ </event>
+
+ <event name="name">
+ <description summary="Output's name">
+ Name of the output, it's useful to cross-reference to an zxdg_output_v1 and ultimately QScreen
+ </description>
+ <arg name="name" type="string"/>
+ </event>
+
+ <event name="active_desktop_id">
+ <description summary="Output's active desktop">
+ The id of the active virtual desktop on this output.
+ </description>
+ <arg name="desktop_id" type="string" summary="Unique id of the active desktop"/>
+ </event>
+
+ <event name="done">
+ <description summary="sent all information about output">
+ This event is sent after all other properties have been
+ sent on binding to the output object as well as after any
+ other output property change have been applied later on.
+ This allows to see changes to the output properties as atomic,
+ even if multiple events successively announce them.
+ </description>
+ </event>
+
+ <event name="removed">
+ <description summary="This output has been removed"></description>
+ </event>
</interface>
-<interface name="org_kde_plasma_virtual_desktop" version="3">
+<interface name="org_kde_plasma_virtual_desktop" version="4">
<request name="request_activate">
<description summary="Requests this desktop to be activated">
Request the server to set the status of this desktop to active: The server is free to consent or deny the request. This will be the new "current" virtual desktop of the system.
--
GitLab
From 5fd0f3db968cebdaad97513dfa3a0d01fa68a57f Mon Sep 17 00:00:00 2001
From: Hynek Schlindenbuch <schlindenbuch.h@seznam.cz>
Date: Thu, 1 Jan 2026 13:50:07 +0100
Subject: [PATCH 2/3] clarify org_kde_plasma_virtual_desktop_management::done
---
src/protocols/org-kde-plasma-virtual-desktop.xml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/protocols/org-kde-plasma-virtual-desktop.xml b/src/protocols/org-kde-plasma-virtual-desktop.xml
index b3e640a..3d79aab 100644
--- a/src/protocols/org-kde-plasma-virtual-desktop.xml
+++ b/src/protocols/org-kde-plasma-virtual-desktop.xml
@@ -51,12 +51,12 @@
<description summary="sent all information about desktops">
This event is sent after all other properties have been sent after
binding to the desktop manager global and after all changes to
- org_kde_plasma_virtual_desktop_management and org_kde_plasma_virtual_desktop
- properties have been sent.
+ org_kde_plasma_virtual_desktop_management, org_kde_plasma_output_virtual_desktop
+ and org_kde_plasma_virtual_desktop properties have been sent.
- This allows changes to org_kde_plasma_virtual_desktop_management and
- org_kde_plasma_virtual_desktop properties to be seen as atomic, even
- if they happen via multiple events.
+ This allows changes to org_kde_plasma_virtual_desktop_management,
+ org_kde_plasma_output_virtual_desktop and org_kde_plasma_virtual_desktop properties,
+ to be seen as atomic, even if they happen via multiple events.
</description>
</event>
--
GitLab
From dcab490553a552b3a5240e8b7a77026865f54a0f Mon Sep 17 00:00:00 2001
From: Hynek Schlindenbuch <schlindenbuch.h@seznam.cz>
Date: Fri, 9 Jan 2026 12:47:52 +0100
Subject: [PATCH 3/3] avoid unnecessary version increase
---
src/protocols/org-kde-plasma-virtual-desktop.xml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/protocols/org-kde-plasma-virtual-desktop.xml b/src/protocols/org-kde-plasma-virtual-desktop.xml
index 3d79aab..3d6afb3 100644
--- a/src/protocols/org-kde-plasma-virtual-desktop.xml
+++ b/src/protocols/org-kde-plasma-virtual-desktop.xml
@@ -123,8 +123,7 @@
</event>
</interface>
-
-<interface name="org_kde_plasma_virtual_desktop" version="4">
+<interface name="org_kde_plasma_virtual_desktop" version="3">
<request name="request_activate">
<description summary="Requests this desktop to be activated">
Request the server to set the status of this desktop to active: The server is free to consent or deny the request. This will be the new "current" virtual desktop of the system.
--
GitLab