get_virtual_desktop(id: new_id<org_kde_plasma_virtual_desktop>, desktop_id: string)
Argument
Type
Description
idnew_id<org_kde_plasma_virtual_desktop>
desktop_idstring
Unique id of the desktop
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.

Warning! The protocol described in this file is a desktop environment implementation detail. Regular clients must not use this protocol. Backward incompatible changes may be added without bumping the major version of the extension.

request_create_virtual_desktop(name: string, position: uint)
Argument
Type
Description
namestring
The user readable name we want for the desktop
positionuint
The position we want for the desktop
ask for the creation of a new desktop at a specified position

Ask the server to create a new virtual desktop, and position it at a specified position. If the position is zero or less, it will be positioned at the beginning, if the position is the count or more, it will be positioned at the end.

request_remove_virtual_desktop(desktop_id: string)
Argument
Type
Description
desktop_idstring
Unique id of the desktop
ask for a desktop removal identified by id

Ask the server to get rid of a virtual desktop, the server may or may not acconsent to the request.

desktop_created(desktop_id: string, position: uint)
Argument
Type
Description
desktop_idstring
Unique id of the desktop
positionuint
Position of this desktop, to ensure the client and the server will see desktops in the same order
Emitted when a new desktop has been created
desktop_removed(desktop_id: string)
Argument
Type
Description
desktop_idstring
Unique id of the desktop
Emitted when a desktop has been removed
done()
sent all information about desktops

This event is sent after all other properties has been sent after binding to the desktop manager object and after any other property changes done after that. This allows changes to the org_kde_plasma_virtual_desktop_management properties to be seen as atomic, even if they happen via multiple events.

rows(rows: uint)
Argument
Type
Description
rowsuint
Number of rows the virtual desktops are laid out into.


request_activate()
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.

desktop_id(desktop_id: string)
Argument
Type
Description
desktop_idstring
Unique id of the desktop
The desktop got an id

The format of the id is decided by the compositor implementation. A desktop id univocally identifies a virtual desktop and must be guaranteed to never exist two desktops with the same id. The format of the string id is up to the server implementation.

name(name: string)
Argument
Type
Description
namestring
User readable descriptive name for the desktop
activated()
The desktop has been activated

The desktop will be the new "current" desktop of the system. The server may support either one virtual desktop active at a time, or other combinations such as one virtual desktop active per screen. Windows associated to this virtual desktop will be shown.

deactivated()
This desktop is no longer active

Windows that were associated only to this desktop will be hidden.

done()
sent all information about desktops

This event is sent after all other properties has been sent after binding to the desktop object and after any other property changes done after that. This allows changes to the org_kde_plasma_virtual_desktop properties to be seen as atomic, even if they happen via multiple events.

removed()
This desktop has been removed

This virtual desktop has just been removed by the server: All windows will lose the association to this desktop.


Compositor Support

Mutter
Mutter
46
KWin
KWin
6.1
Sway
Sway
1.9
COSMIC
COSMIC
1.0.0
Hyprland
Hyprland
0.42.0
niri
0.1.8
Weston
Weston
13
Mir
Mir
2.17
GameScope
GameScope
3.14.22
org_kde_plasma_virtual_desktop_management
x
2
x
x
x
x
x
x
x

SPDX-FileCopyrightText: 2018 Marco Martin

SPDX-License-Identifier: LGPL-2.1-or-later