import Quickshell import Quickshell.Wayland import Quickshell.Widgets import Quickshell.Io import QtQuick import QtQuick.Effects Item { id: thin property bool open: false property real pos: 0 PropertyAnimation on pos { id: entry running: false to: 1 duration: 400 easing.type: Easing.OutQuint } PropertyAnimation on pos { id: exit running: false to: 0 duration: 350 easing.type: Easing.OutQuint onFinished: thin.open = false } IpcHandler { target: "thin" function open() { thin.open = true exit.stop() entry.start() } function close() { entry.stop() exit.start() } } PanelWindow { visible: thin.open anchors { right: true bottom: true } implicitHeight: 430 implicitWidth: 1080 color: "transparent" WlrLayershell.layer: WlrLayer.Overlay RectangularShadow { anchors.fill: pie_wrapper radius: pie_wrapper.radius blur: 10 spread: 2 } ClippingRectangle { id: pie_wrapper anchors { left: parent.left top: parent.top margins: 12 leftMargin: 1080 * (1 - thin.pos) + 12 } width: 210 height: 210 color: "white" radius: 12 Item { anchors.fill: parent layer.enabled: true layer.smooth: false ScreencopyView { width: Quickshell.screens[0].width height: Quickshell.screens[0].height live: true captureSource: Quickshell.screens[0] x: -1386 y: -1208 } transform: Scale { origin: {x: 0; y: 0} xScale: 6 yScale: xScale } } } } PanelWindow { visible: thin.open anchors { top: true left: true } implicitWidth: 1080 implicitHeight: 120 color: "transparent" WlrLayershell.layer: WlrLayer.Overlay RectangularShadow { anchors.fill: e_wrapper radius: e_wrapper.radius blur: 10 spread: 2 } ClippingRectangle { id: e_wrapper anchors { right: parent.right bottom: parent.bottom margins: 12 rightMargin: 1080 * (1 - thin.pos) + 12 } width: 240 height: 48 color: "white" radius: 12 Item { anchors.fill: parent ScreencopyView { layer.enabled: true layer.smooth: false width: Quickshell.screens[0].width height: Quickshell.screens[0].height live: true captureSource: Quickshell.screens[0] x: -1080 y: -47 } transform: Scale { origin: {x: 0; y: 0} xScale: 5 yScale: xScale } } } } }