import Quickshell import Quickshell.Io import QtQuick import QtQuick.Effects Variants { model: Quickshell.screens PanelWindow { anchors { top: true right: true bottom: true left: true } aboveWindows: false property var modelData screen: modelData color: "#222222" RectangularShadow { anchors.fill: imageWrapper transform: imageWrapper.transform radius: roundMask.radius blur: 30 spread: 10 color: "#000000" } Item { id: imageWrapper anchors.fill: parent layer.enabled: true Image { anchors.fill: parent fillMode: Image.PreserveAspectCrop source: { const _source = path.text() return _source.substring(0, _source.length - 1) } } transform: [Scale { origin {x: width/2; y: height/2} xScale: 0.8 yScale: xScale NumberAnimation on xScale { id: scaleAnim running: false to: 1 duration: 800 easing.type: Easing.InOutCubic } }, Translate { NumberAnimation on y { from: 100 to: 0 duration: 500 easing.type: Easing.OutQuint onFinished: scaleAnim.start() } }] layer.effect: MultiEffect { maskSource: roundMask maskEnabled: true } NumberAnimation on opacity { from: 0 to: 1 duration: 250 } } Rectangle { id: roundMask visible: false antialiasing: true anchors.fill: imageWrapper radius: 40 layer.enabled: true NumberAnimation on radius { running: scaleAnim.running to: 0 duration: 800 } } FileView { id: path path: Qt.resolvedUrl("wall.txt") } } }