import QtQuick import org.kde.plasma.plasmoid import "lumen" WallpaperItem { id: root readonly property var activeConfiguration: { if (typeof wallpaper !== "undefined" && wallpaper && wallpaper.configuration) return wallpaper.configuration return typeof configuration !== "undefined" ? configuration : null } function option(name, fallback) { if (!activeConfiguration) return fallback const value = activeConfiguration[name] return value === undefined ? fallback : value } VulkanWallpaper { id: engine anchors.fill: parent shaderUrl: { const path = String(root.option("shaderPath", "")) return path.length > 0 ? path : Qt.resolvedUrl("shaders/Lumen.frag") } targetFps: Number(root.option("targetFps", 30)) speed: Number(root.option("speed", 1.0)) running: Boolean(root.option("running", true)) mouseEnabled: Boolean(root.option("mouseEnabled", true)) watchSource: Boolean(root.option("watchSource", true)) } Rectangle { anchors.fill: parent color: "#111522" visible: engine.errorMessage.length > 0 && !engine.fallbackActive Text { anchors.centerIn: parent width: Math.min(parent.width * 0.8, 640) horizontalAlignment: Text.AlignHCenter wrapMode: Text.Wrap color: "#f3f5fa" font.pixelSize: 16 text: "Lumen Wallpaper\n\n" + engine.errorMessage } } Rectangle { anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom anchors.bottomMargin: 80 height: warningText.implicitHeight + 16 color: "#cc421f35" visible: engine.fallbackActive && engine.errorMessage.length > 0 Text { id: warningText anchors.left: parent.left anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter anchors.margins: 12 horizontalAlignment: Text.AlignHCenter wrapMode: Text.Wrap elide: Text.ElideRight maximumLineCount: 3 color: "#ffd9e2" text: "Lumen: using the last working shader\n" + engine.errorMessage } } }