aboutsummaryrefslogtreecommitdiffstats
path: root/config/quickshell/overview-bak/modules/overview/OverviewWindow.qml
diff options
context:
space:
mode:
Diffstat (limited to 'config/quickshell/overview-bak/modules/overview/OverviewWindow.qml')
-rw-r--r--config/quickshell/overview-bak/modules/overview/OverviewWindow.qml112
1 files changed, 112 insertions, 0 deletions
diff --git a/config/quickshell/overview-bak/modules/overview/OverviewWindow.qml b/config/quickshell/overview-bak/modules/overview/OverviewWindow.qml
new file mode 100644
index 00000000..fac3e22e
--- /dev/null
+++ b/config/quickshell/overview-bak/modules/overview/OverviewWindow.qml
@@ -0,0 +1,112 @@
+import QtQuick.Effects
+import QtQuick
+import QtQuick.Layouts
+import Quickshell
+import Quickshell.Wayland
+import "../../common"
+import "../../common/functions"
+import "../../services"
+
+Item { // Window
+ id: root
+ property var toplevel
+ property var windowData
+ property var monitorData
+ property var scale
+ property var availableWorkspaceWidth
+ property var availableWorkspaceHeight
+ property bool restrictToWorkspace: true
+ property real initX: Math.max(((windowData?.at[0] ?? 0) - (monitorData?.x ?? 0) - (monitorData?.reserved?.[0] ?? 0)) * root.scale, 0) + xOffset
+ property real initY: Math.max(((windowData?.at[1] ?? 0) - (monitorData?.y ?? 0) - (monitorData?.reserved?.[1] ?? 0)) * root.scale, 0) + yOffset
+ property real xOffset: 0
+ property real yOffset: 0
+ property int widgetMonitorId: 0
+
+ property var targetWindowWidth: (windowData?.size[0] ?? 100) * scale
+ property var targetWindowHeight: (windowData?.size[1] ?? 100) * scale
+ property bool hovered: false
+ property bool pressed: false
+
+ property var iconToWindowRatio: 0.25
+ property var xwaylandIndicatorToIconRatio: 0.35
+ property var iconToWindowRatioCompact: 0.45
+ property var entry: DesktopEntries.heuristicLookup(windowData?.class)
+ property var iconPath: Quickshell.iconPath(entry?.icon ?? windowData?.class ?? "application-x-executable", "image-missing")
+ property bool compactMode: Appearance.font.pixelSize.smaller * 4 > targetWindowHeight || Appearance.font.pixelSize.smaller * 4 > targetWindowWidth
+
+ property bool indicateXWayland: windowData?.xwayland ?? false
+
+ x: initX
+ y: initY
+ width: Math.min((windowData?.size[0] ?? 100) * root.scale, availableWorkspaceWidth)
+ height: Math.min((windowData?.size[1] ?? 100) * root.scale, availableWorkspaceHeight)
+ opacity: (windowData?.monitor ?? -1) == widgetMonitorId ? 1 : 0.4
+
+ layer.enabled: true
+ layer.smooth: true
+ layer.mipmap: true
+
+ Behavior on x {
+ animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this)
+ }
+ Behavior on y {
+ animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this)
+ }
+ Behavior on width {
+ animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this)
+ }
+ Behavior on height {
+ animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this)
+ }
+
+ Rectangle {
+ id: clipContainer
+ anchors.fill: parent
+ radius: Appearance.rounding.windowRounding * root.scale
+ clip: true
+ color: "transparent"
+
+ ScreencopyView {
+ id: windowPreview
+ anchors.fill: parent
+ captureSource: GlobalStates.overviewOpen ? root.toplevel : null
+ live: true
+
+ Rectangle {
+ anchors.fill: parent
+ radius: Appearance.rounding.windowRounding * root.scale
+ color: pressed ? ColorUtils.transparentize(Appearance.colors.colLayer2Active, 0.5) :
+ hovered ? ColorUtils.transparentize(Appearance.colors.colLayer2Hover, 0.7) :
+ ColorUtils.transparentize(Appearance.colors.colLayer2)
+ border.color : ColorUtils.transparentize(Appearance.m3colors.m3outline, 0.7)
+ border.width : 1
+ }
+
+ ColumnLayout {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.right: parent.right
+ spacing: Appearance.font.pixelSize.smaller * 0.5
+
+ Image {
+ id: windowIcon
+ property var iconSize: {
+ return Math.min(targetWindowWidth, targetWindowHeight) * (root.compactMode ? root.iconToWindowRatioCompact : root.iconToWindowRatio) / (root.monitorData?.scale ?? 1);
+ }
+ Layout.alignment: Qt.AlignHCenter
+ source: root.iconPath
+ width: iconSize
+ height: iconSize
+ sourceSize: Qt.size(iconSize, iconSize)
+
+ Behavior on width {
+ animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this)
+ }
+ Behavior on height {
+ animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this)
+ }
+ }
+ }
+ }
+ }
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage