aboutsummaryrefslogtreecommitdiffstats
path: root/config/quickshell/overview-trixie/modules/overview/OverviewWindow.qml
diff options
context:
space:
mode:
authorDon Williams <Don.e.williams@gmail.com>2026-07-13 16:15:49 -0400
committerPinapelz <yukais@pinapelz.com>2026-08-29 21:40:35 -0700
commitc8b343b98c203ac13d4b28bb269a735cf4c03475 (patch)
treec76921ca2309c9595fdd02045f33fe9f1684176b /config/quickshell/overview-trixie/modules/overview/OverviewWindow.qml
parentdcc2b56bd34846c5e8562bdb33ea63f3734d5ec0 (diff)
Cleaning up quickshell builds
Signed-off-by: Don Williams <Don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: deleted: overview-trixie/README.md deleted: overview-trixie/assets/Workspace_Wallpaper.png deleted: overview-trixie/assets/image.png deleted: overview-trixie/common/Appearance.qml deleted: overview-trixie/common/Config.qml deleted: overview-trixie/common/functions/ColorUtils.qml deleted: overview-trixie/common/functions/qmldir deleted: overview-trixie/common/qmldir deleted: overview-trixie/common/widgets/StyledRectangularShadow.qml deleted: overview-trixie/common/widgets/StyledText.qml deleted: overview-trixie/common/widgets/StyledToolTip.qml deleted: overview-trixie/common/widgets/StyledToolTipContent.qml deleted: overview-trixie/common/widgets/qmldir deleted: overview-trixie/config.example.json deleted: overview-trixie/config.json deleted: overview-trixie/modules/overview/Overview.qml deleted: overview-trixie/modules/overview/OverviewWidget.qml deleted: overview-trixie/modules/overview/OverviewWindow.qml deleted: overview-trixie/modules/overview/qmldir deleted: overview-trixie/quickshell-overview.qml deleted: overview-trixie/services/GlobalStates.qml deleted: overview-trixie/services/HyprlandData.qml deleted: overview-trixie/services/qmldir deleted: overview-trixie/shell.qml deleted: overview-unified/README.md deleted: overview-unified/assets/image.png deleted: overview-unified/common/Appearance.qml deleted: overview-unified/common/Config.qml deleted: overview-unified/common/functions/ColorUtils.qml deleted: overview-unified/common/functions/qmldir deleted: overview-unified/common/qmldir deleted: overview-unified/common/widgets/RectangularShadow.qml deleted: overview-unified/common/widgets/StyledRectangularShadow.qml deleted: overview-unified/common/widgets/StyledText.qml deleted: overview-unified/common/widgets/StyledToolTip.qml deleted: overview-unified/common/widgets/StyledToolTipContent.qml deleted: overview-unified/common/widgets/qmldir deleted: overview-unified/modules/overview/Overview.qml deleted: overview-unified/modules/overview/OverviewWidget.qml deleted: overview-unified/modules/overview/OverviewWindow.qml deleted: overview-unified/modules/overview/qmldir deleted: overview-unified/services/GlobalStates.qml deleted: overview-unified/services/HyprlandData.qml deleted: overview-unified/services/qmldir deleted: overview-unified/shell.qml renamed: overview-trixie/common/widgets/RectangularShadow.qml -> overview/common/widgets/RectangularShadow.qml modified: overview/common/widgets/qmldir deleted: qs-hyprview-unified/LICENSE deleted: qs-hyprview-unified/README.md deleted: qs-hyprview-unified/common/Appearance.qml deleted: qs-hyprview-unified/layouts/BandsLayout.qml deleted: qs-hyprview-unified/layouts/ColumnarLayout.qml deleted: qs-hyprview-unified/layouts/HeroLayout.qml deleted: qs-hyprview-unified/layouts/JustifiedLayout.qml deleted: qs-hyprview-unified/layouts/LayoutsManager.qml deleted: qs-hyprview-unified/layouts/MasonryLayout.qml deleted: qs-hyprview-unified/layouts/SatelliteLayout.qml deleted: qs-hyprview-unified/layouts/SmartGridLayout.qml deleted: qs-hyprview-unified/layouts/SpiralLayout.qml deleted: qs-hyprview-unified/layouts/StarggeredLayout.qml deleted: qs-hyprview-unified/layouts/VortexLayout.qml deleted: qs-hyprview-unified/layouts/qmldir deleted: qs-hyprview-unified/modules/Hyprview.qml deleted: qs-hyprview-unified/modules/SearchBox.qml deleted: qs-hyprview-unified/modules/WindowThumbnail.qml deleted: qs-hyprview-unified/modules/qmldir deleted: qs-hyprview-unified/qs-hyprview-template.qml deleted: qs-hyprview-unified/screenshots/bands.jpeg deleted: qs-hyprview-unified/screenshots/hero.jpeg deleted: qs-hyprview-unified/screenshots/masonry.jpeg deleted: qs-hyprview-unified/screenshots/satellite.jpeg deleted: qs-hyprview-unified/screenshots/smartgrid.jpeg deleted: qs-hyprview-unified/screenshots/spiral.jpeg deleted: qs-hyprview-unified/screenshots/staggered.jpeg deleted: qs-hyprview-unified/screenshots/vortex.jpeg deleted: qs-hyprview-unified/shell.qml modified: qs-hyprview/modules/WindowThumbnail.qml
Diffstat (limited to 'config/quickshell/overview-trixie/modules/overview/OverviewWindow.qml')
-rw-r--r--config/quickshell/overview-trixie/modules/overview/OverviewWindow.qml264
1 files changed, 0 insertions, 264 deletions
diff --git a/config/quickshell/overview-trixie/modules/overview/OverviewWindow.qml b/config/quickshell/overview-trixie/modules/overview/OverviewWindow.qml
deleted file mode 100644
index 3b2652a9..00000000
--- a/config/quickshell/overview-trixie/modules/overview/OverviewWindow.qml
+++ /dev/null
@@ -1,264 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Effects
-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 widgetMonitorData
- property var scale
- property var availableWorkspaceWidth
- property var availableWorkspaceHeight
- property real positionBaseX: (monitorData?.x ?? 0) + (monitorData?.reserved?.[0] ?? 0)
- property real positionBaseY: (monitorData?.y ?? 0) + (monitorData?.reserved?.[1] ?? 0)
- property int recaptureToken: 0
- property bool restrictToWorkspace: true
- property real widthRatio: {
- if (!widgetMonitorData || !monitorData)
- return 1;
-
- const widgetWidth = (widgetMonitorData.transform % 2 === 1) ? (widgetMonitorData.height ?? 1) : (widgetMonitorData.width ?? 1);
- const sourceWidth = (monitorData.transform % 2 === 1) ? (monitorData.height ?? 1) : (monitorData.width ?? 1);
- const sourceScale = monitorData.scale ?? 1;
- const widgetScale = widgetMonitorData.scale ?? 1;
- return (widgetWidth * sourceScale) / (sourceWidth * widgetScale);
- }
- property real heightRatio: {
- if (!widgetMonitorData || !monitorData)
- return 1;
-
- const widgetHeight = (widgetMonitorData.transform % 2 === 1) ? (widgetMonitorData.width ?? 1) : (widgetMonitorData.height ?? 1);
- const sourceHeight = (monitorData.transform % 2 === 1) ? (monitorData.width ?? 1) : (monitorData.height ?? 1);
- const sourceScale = monitorData.scale ?? 1;
- const widgetScale = widgetMonitorData.scale ?? 1;
- return (widgetHeight * sourceScale) / (sourceHeight * widgetScale);
- }
- property real initX: Math.max(((windowData?.at[0] ?? 0) - positionBaseX) * root.scale * geometryScaleX, 0) + xOffset
- property real initY: Math.max(((windowData?.at[1] ?? 0) - positionBaseY) * root.scale * geometryScaleY, 0) + yOffset
- property real xOffset: 0
- property real yOffset: 0
- property int widgetMonitorId: 0
- property real geometryScaleX: widthRatio
- property real geometryScaleY: heightRatio
-
- property var targetWindowWidth: (windowData?.size[0] ?? 100) * scale * geometryScaleX
- property var targetWindowHeight: (windowData?.size[1] ?? 100) * scale * geometryScaleY
- property bool hovered: false
- property bool pressed: false
-
- property bool showIcons: Config.options.windowPreview.showIcons
- property var iconToWindowRatio: Config.options.windowPreview.iconToWindowRatio
- property var xwaylandIndicatorToIconRatio: Config.options.windowPreview.xwaylandIndicatorToIconRatio
- property var iconToWindowRatioCompact: Config.options.windowPreview.iconToWindowRatioCompact
- property bool cropToFill: Config.options.windowPreview.cropToFill
- property bool previewsEnabled: Config.options.overview.previewsEnabled
- property bool includeInactiveMonitorPreviews: Config.options.overview.includeInactiveMonitorPreviews
- property int previewRecaptureDelayMs: Config.options.overview.previewRecaptureDelayMs
- property real windowOverlayOpacity: Math.max(0, Math.min(1, Config.options.overview.effects.windowOverlayOpacity))
- property bool glassMode: Config.options.overview.effects.glassMode
- property real glassShineOpacity: Math.max(0, Math.min(1, Config.options.overview.effects.glassShineOpacity))
- property real effectiveWindowOverlayOpacity: glassMode ? Math.min(windowOverlayOpacity, 0.10) : windowOverlayOpacity
- property string previewModeRaw: Config.options.overview.previewMode
- property string previewMode: {
- const mode = `${previewModeRaw ?? "live"}`.trim().toLowerCase();
- return (mode === "event" || mode === "snapshot") ? "event" : "live";
- }
- property bool livePreviewEnabled: previewsEnabled && previewMode === "live"
- property bool shouldCapturePreview: {
- if (!GlobalStates.overviewOpen || !previewsEnabled || !previewCaptureEnabled)
- return false;
- if (includeInactiveMonitorPreviews)
- return true;
- return (windowData?.monitor ?? -1) === widgetMonitorId;
- }
- property var entry: {
- DesktopEntries.applications.values; // re-run when the entry index updates
- return DesktopEntries.heuristicLookup(windowData?.class);
- }
- property string iconName: {
- const raw = `${entry?.icon ?? ""}`.trim();
- const withoutProviderPrefix = raw.replace(/^image:\/\/icon\//, "");
- const withoutQuery = withoutProviderPrefix.split("?")[0].trim();
- return withoutQuery.length > 0 ? withoutQuery : "application-x-executable";
- }
- property var iconPath: Quickshell.iconPath(iconName, "image-missing")
- property bool compactMode: Appearance.font.pixelSize.smaller * 4 > targetWindowHeight || Appearance.font.pixelSize.smaller * 4 > targetWindowWidth
-
- property bool indicateXWayland: windowData?.xwayland ?? false
- property bool previewCaptureEnabled: true
- property bool initialized: false
- property bool dragInProgress: false
- property bool suspendPositionAnimation: false
- property bool animateSize: true
-
- x: initX
- y: initY
- width: Math.min(targetWindowWidth, availableWorkspaceWidth)
- height: Math.min(targetWindowHeight, availableWorkspaceHeight)
- opacity: (windowData?.monitor ?? -1) == widgetMonitorId ? 1 : Config.options.windowPreview.inactiveMonitorOpacity
- visible: {
- const thisWsId = windowData?.workspace?.id;
- const isFullscreen = (windowData?.fullscreen ?? 0) > 0;
- if (isFullscreen || thisWsId === undefined) return true;
- return !HyprlandData.windowList.some(w => w.workspace?.id === thisWsId && (w.fullscreen ?? 0) > 0);
- }
-
- clip: true
- Component.onCompleted: Qt.callLater(() => root.initialized = true)
-
- Behavior on x {
- enabled: root.initialized && !root.dragInProgress && !root.suspendPositionAnimation
- animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this)
- }
- Behavior on y {
- enabled: root.initialized && !root.dragInProgress && !root.suspendPositionAnimation
- animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this)
- }
- Behavior on width {
- enabled: root.initialized && root.animateSize && !root.dragInProgress && !root.suspendPositionAnimation
- animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this)
- }
- Behavior on height {
- enabled: root.initialized && root.animateSize && !root.dragInProgress && !root.suspendPositionAnimation
- animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this)
- }
-
- // Opaque background for windows on the active monitor.
- // The simplest solution for making those windows fully opaque and not interacting with actual
- // windows behind the overview, e.g., applying blur to them.
- Rectangle {
- visible: (root.windowData?.monitor ?? -1) === root.widgetMonitorId
- anchors.fill: parent
- radius: Appearance.rounding.windowRounding * root.scale
- color: root.glassMode
- ? ColorUtils.mix(Appearance.colors.colLayer2, Appearance.colors.colLayer0, 0.38)
- : Appearance.colors.colLayer2
- }
-
- ScreencopyView {
- id: windowPreview
- readonly property real srcAspect: {
- const w = root.windowData?.size?.[0] ?? 0;
- const h = root.windowData?.size?.[1] ?? 0;
- return (w > 0 && h > 0) ? (w / h) : 1;
- }
- anchors.centerIn: parent
- width: root.cropToFill
- ? Math.max(parent.width, parent.height * srcAspect)
- : Math.min(parent.width, parent.height * srcAspect)
- height: root.cropToFill
- ? Math.max(parent.height, parent.width / srcAspect)
- : Math.min(parent.height, parent.width / srcAspect)
- captureSource: shouldCapturePreview ? root.toplevel : null
- live: livePreviewEnabled
- layer.enabled: true
- layer.smooth: true
- layer.effect: MultiEffect {
- maskEnabled: true
- maskSource: previewMask
- maskThresholdMin: 0.5
- maskSpreadAtMin: 1.0
- }
- }
-
- Rectangle {
- anchors.fill: parent
- radius: Appearance.rounding.windowRounding * root.scale
- color: pressed ? ColorUtils.applyAlpha(Appearance.colors.colLayer2Active, Math.min(1, root.effectiveWindowOverlayOpacity + 0.30)) :
- hovered ? ColorUtils.applyAlpha(Appearance.colors.colLayer2Hover, Math.min(1, root.effectiveWindowOverlayOpacity + 0.20)) :
- ColorUtils.applyAlpha(
- root.glassMode ? ColorUtils.mix(Appearance.colors.colLayer2, Appearance.colors.colLayer0, 0.38) : Appearance.colors.colLayer2,
- root.effectiveWindowOverlayOpacity
- )
- border.color: root.glassMode
- ? ColorUtils.applyAlpha(Appearance.m3colors.m3outline, 0.62)
- : ColorUtils.transparentize(Appearance.m3colors.m3outline, 0.7)
- border.width: 1
-
- Rectangle {
- visible: root.glassMode
- anchors.fill: parent
- radius: parent.radius
- color: "transparent"
- gradient: Gradient {
- GradientStop { position: 0.0; color: ColorUtils.applyAlpha("#FFFFFF", root.glassShineOpacity * 0.24) }
- GradientStop { position: 0.5; color: ColorUtils.applyAlpha("#FFFFFF", 0.0) }
- GradientStop { position: 1.0; color: ColorUtils.applyAlpha("#000000", root.glassShineOpacity * 0.14) }
- }
- }
-
- Rectangle {
- visible: root.glassMode
- anchors.fill: parent
- anchors.margins: 1
- radius: Math.max(parent.radius - 1, 0)
- color: "transparent"
- border.width: 1
- border.color: ColorUtils.applyAlpha("#FFFFFF", root.glassShineOpacity * 0.32)
- }
-
- ColumnLayout {
- anchors.verticalCenter: parent.verticalCenter
- anchors.left: parent.left
- anchors.right: parent.right
- spacing: Appearance.font.pixelSize.smaller * 0.5
-
- Image {
- id: windowIcon
- visible: root.showIcons
- property var iconSize: {
- const renderedSize = Math.min(root.width, root.height);
- return renderedSize * (root.compactMode ? root.iconToWindowRatioCompact : root.iconToWindowRatio) / (root.monitorData?.scale ?? 1);
- }
- Layout.alignment: Qt.AlignHCenter
- source: root.iconPath
- width: iconSize
- height: iconSize
- sourceSize: Qt.size(Math.max(1, Math.round(iconSize)), Math.max(1, Math.round(iconSize)))
- }
- }
- }
-
- Item {
- id: previewMask
- width: windowPreview.width
- height: windowPreview.height
- anchors.centerIn: parent
- visible: false
- layer.enabled: true
- layer.smooth: true
- Rectangle {
- anchors.centerIn: parent
- width: root.width
- height: root.height
- radius: Appearance.rounding.windowRounding * root.scale
- }
- }
-
- function refreshCapture() {
- if (!GlobalStates.overviewOpen || livePreviewEnabled || !previewsEnabled)
- return;
-
- root.previewCaptureEnabled = false;
- previewResetTimer.restart();
- }
-
- Timer {
- id: previewResetTimer
- interval: Math.max(1, previewRecaptureDelayMs)
- repeat: false
- onTriggered: root.previewCaptureEnabled = true
- }
-
- onRecaptureTokenChanged: {
- if (recaptureToken > 0)
- root.refreshCapture();
- }
-}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage