From 4f816e0abf00682c45a4a6dbd3301067233e7bd4 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Mon, 2 Jun 2025 21:57:59 +1000 Subject: bar: add preview to activewindow popout --- modules/bar/popouts/ActiveWindow.qml | 25 +++++++++++++++++++++---- modules/bar/popouts/Content.qml | 5 +++-- 2 files changed, 24 insertions(+), 6 deletions(-) (limited to 'modules') diff --git a/modules/bar/popouts/ActiveWindow.qml b/modules/bar/popouts/ActiveWindow.qml index 06ad52c..d9e9b9e 100644 --- a/modules/bar/popouts/ActiveWindow.qml +++ b/modules/bar/popouts/ActiveWindow.qml @@ -1,9 +1,8 @@ - - import "root:/widgets" import "root:/services" import "root:/utils" import "root:/config" +import Quickshell.Widgets import Quickshell.Wayland import QtQuick @@ -17,17 +16,35 @@ Item { id: child anchors.centerIn: parent + spacing: Appearance.spacing.normal StyledText { text: Hyprland.activeClient?.title ?? "" + + elide: Text.ElideRight + width: preview.implicitWidth } StyledText { text: Hyprland.activeClient?.wmClass ?? "" + + elide: Text.ElideRight + width: preview.implicitWidth } - ScreencopyView { - + ClippingWrapperRectangle { + color: "transparent" + radius: Appearance.rounding.small + + ScreencopyView { + id: preview + + captureSource: ToplevelManager.toplevels.values.find(t => t.title === Hyprland.activeClient?.title) ?? null + live: true + + constraintSize.width: BarConfig.sizes.windowPreviewSize + constraintSize.height: BarConfig.sizes.windowPreviewSize + } } } } diff --git a/modules/bar/popouts/Content.qml b/modules/bar/popouts/Content.qml index be45eac..c10348c 100644 --- a/modules/bar/popouts/Content.qml +++ b/modules/bar/popouts/Content.qml @@ -1,7 +1,6 @@ import "root:/services" import "root:/config" import Quickshell -import Quickshell.Widgets import QtQuick Item { @@ -13,7 +12,6 @@ Item { implicitWidth: Popouts.hasCurrent ? content.children.find(c => c.shouldBeActive).implicitWidth + Appearance.padding.large * 2 : 0 implicitHeight: Popouts.hasCurrent ? content.children.find(c => c.shouldBeActive).implicitHeight + Appearance.padding.large * 2 : 0 - clip: true Item { id: content @@ -47,6 +45,9 @@ Item { required property string name property bool shouldBeActive: Popouts.currentName === name + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + active: shouldBeActive asynchronous: true -- cgit v1.2.3-freya