This commit is contained in:
wheaney 2025-06-24 10:36:39 -07:00
parent 458700798f
commit 852eb47e3f
4 changed files with 12 additions and 15 deletions

View File

@ -153,9 +153,6 @@ void CubeEffect::activate()
if (effects->isScreenLocked()) {
return;
}
if (effects->desktops().size() < 3) {
return;
}
setRunning(true);
}

View File

@ -16,22 +16,23 @@ Node {
readonly property real faceDistance: 0.5 * faceSize.width / Math.tan(angleTick * Math.PI / 360) + faceDisplacement;
readonly property real angleTick: 360 / faceRepeater.count
function desktopAt(azimuth) {
function screenAt(azimuth) {
let index = Math.round(azimuth / angleTick) % faceRepeater.count;
if (index < 0) {
index += faceRepeater.count;
}
return faceRepeater.objectAt(index).desktop;
return faceRepeater.objectAt(index).screen;
}
function desktopAzimuth(desktop) {
return cube.angleTick * (desktop.x11DesktopNumber - 1);
function screenAzimuth(screen) {
return cube.angleTick * screen.index;
}
Repeater3D {
id: faceRepeater
model: KWinComponents.VirtualDesktopModel {}
model: KWinComponents.Workspace.screens.length
delegate: CubeFace {
property var screen: KWinComponents.Workspace.screens[index]
faceSize: cube.faceSize
scale: Qt.vector3d(faceSize.width / 100, faceSize.height / 100, 1)
eulerRotation.y: cube.angleTick * index

View File

@ -10,7 +10,7 @@ import QtQuick3D
Model {
id: face
required property QtObject desktop
required property QtObject screen
required property int index
required property size faceSize
@ -21,7 +21,7 @@ Model {
lighting: DefaultMaterial.NoLighting
diffuseMap: Texture {
sourceItem: DesktopView {
desktop: face.desktop
screen: face.screen
width: faceSize.width
height: faceSize.height
}

View File

@ -10,20 +10,19 @@ import org.kde.kwin as KWinComponents
Item {
id: desktopView
required property QtObject desktop
required property QtObject screen
Repeater {
model: KWinComponents.WindowFilterModel {
activity: KWinComponents.Workspace.currentActivity
desktop: desktopView.desktop
screenName: targetScreen.name
screenName: desktopView.screen.name
windowModel: KWinComponents.WindowModel {}
}
KWinComponents.WindowThumbnail {
wId: model.window.internalId
x: model.window.x - targetScreen.geometry.x
y: model.window.y - targetScreen.geometry.y
x: model.window.x - desktopView.screen.geometry.x
y: model.window.y - desktopView.screen.geometry.y
z: model.window.stackingOrder
visible: !model.window.minimized
}