diff --git a/src/lib/extern/kwin.ts b/src/lib/extern/kwin.ts index 43a32ec..979113b 100644 --- a/src/lib/extern/kwin.ts +++ b/src/lib/extern/kwin.ts @@ -17,8 +17,9 @@ type Workspace = { readonly windowAdded: QSignal<[KwinClient]>; readonly windowRemoved: QSignal<[KwinClient]>; readonly windowActivated: QSignal<[KwinClient]>; - readonly desktopsChanged: QSignal<[]>; + readonly screensChanged: QSignal<[]>; readonly activitiesChanged: QSignal<[]>; + readonly desktopsChanged: QSignal<[]>; readonly currentActivityChanged: QSignal<[]>; readonly virtualScreenSizeChanged: QSignal<[]>; diff --git a/src/lib/workspace.ts b/src/lib/workspace.ts index d1b6a2d..2b50c79 100644 --- a/src/lib/workspace.ts +++ b/src/lib/workspace.ts @@ -34,16 +34,22 @@ function initWorkspaceSignalHandlers(world: World) { world.do(() => {}); // re-arrange desktop }); - manager.connect(Workspace.desktopsChanged, () => { + manager.connect(Workspace.screensChanged, () => { world.do((clientManager, desktopManager) => { - desktopManager.updateDesktops(); - }) + desktopManager.selectScreen(Workspace.activeScreen); + }); }); manager.connect(Workspace.activitiesChanged, () => { world.do((clientManager, desktopManager) => { desktopManager.updateActivities(); - }) + }); + }); + + manager.connect(Workspace.desktopsChanged, () => { + world.do((clientManager, desktopManager) => { + desktopManager.updateDesktops(); + }); }); manager.connect(Workspace.virtualScreenSizeChanged, () => {