Virtual desktop and activity tracking. KWin virtual desktops via D-Bus; KDE Activities via KActivities / PlasmaActivities.
Tracks the active virtual desktop and current Activity, with change signals on switch. Independent of the PlasmaZones daemon — consumers that need workspace awareness link this library directly.
| Type | Purpose |
|---|---|
VirtualDesktopManager | Tracks KWin virtual desktops via D-Bus — current desktop, count, names, UUID mapping |
ActivityManager | Tracks KDE Activities via KActivities/PlasmaActivities (optional compile-time dep) |
#include <PhosphorWorkspaces/VirtualDesktopManager.h>
#include <PhosphorWorkspaces/ActivityManager.h>
PhosphorWorkspaces::VirtualDesktopManager vdm;
vdm.init();
vdm.start();
connect(&vdm, &VirtualDesktopManager::currentDesktopChanged, [](int desktop) {
// React to desktop switch
});
PhosphorWorkspaces::ActivityManager activities;
activities.init();
activities.start();
// activities.currentActivity() — empty string if KActivities unavailableQtCore, QtDBusActivityManager::isAvailable() returns false when absent and activity queries return empty results — virtual desktop tracking works regardless).