Files
z-bar-qt/Modules/WSOverview/OverviewPopout.qml
2026-01-27 14:16:23 +01:00

85 lines
1.6 KiB
QML

import Quickshell
import Quickshell.Hyprland
import Quickshell.Wayland
import QtQuick
import QtQuick.Layouts
import qs.Config
import qs.Components
import qs.Modules
import qs.Helpers
Item {
id: root
required property Item wrapper
required property ShellScreen screen
implicitWidth: layout.implicitWidth + 16
implicitHeight: layout.implicitHeight + 16
GridLayout {
id: layout
anchors.centerIn: parent
columnSpacing: 8
rowSpacing: 8
Repeater {
model: Hypr.workspaces
CustomRect {
id: workspacePreview
required property HyprlandWorkspace modelData
border.color: "white"
border.width: 1
radius: 8
Layout.preferredWidth: 320 + 10
Layout.preferredHeight: 180 + 10
Repeater {
model: workspacePreview.modelData.toplevels
Item {
id: preview
anchors.fill: parent
anchors.margins: 5
required property HyprlandToplevel modelData
property rect appPosition: {
let {
at: [cx, cy],
size: [cw, ch]
} = modelData.lastIpcObject;
cx -= modelData.monitor.x;
cy -= modelData.monitor.y;
return Qt.rect( (cx / 8), (cy / 8), (cw / 8), (ch / 8) )
}
CustomRect {
border.color: DynamicColors.tPalette.m3outline
border.width: 1
radius: 4
implicitWidth: preview.appPosition.width
implicitHeight: preview.appPosition.height
x: preview.appPosition.x
y: preview.appPosition.y - 3.4
ScreencopyView {
id: previewCopy
anchors.fill: parent
captureSource: preview.modelData.wayland
live: true
}
}
}
}
}
}
}
}