bar: add preview to activewindow popout

This commit is contained in:
2 * r + 2 * t 2025-06-02 21:57:59 +10:00
parent 2054708406
commit 4f816e0abf
3 changed files with 25 additions and 6 deletions

View file

@ -11,6 +11,7 @@ Singleton {
component Sizes: QtObject {
property int innerHeight: 30
property int windowPreviewSize: 400
}
component Workspaces: QtObject {

View file

@ -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
}
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
}
}
}
}

View file

@ -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