Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
phosphor-workspaces

‍Virtual desktop and activity tracking. KWin virtual desktops via D-Bus; KDE Activities via KActivities / PlasmaActivities.

Responsibility

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.

Key types

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)

Typical use

#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 unavailable

Dependencies

  • QtCore, QtDBus
  • KActivities / PlasmaActivities (optional, detected at CMake time; ActivityManager::isAvailable() returns false when absent and activity queries return empty results — virtual desktop tracking works regardless).