summaryrefslogtreecommitdiff
path: root/modules/bar/components/workspaces/Workspace.qml
diff options
context:
space:
mode:
Diffstat (limited to 'modules/bar/components/workspaces/Workspace.qml')
-rw-r--r--modules/bar/components/workspaces/Workspace.qml42
1 files changed, 25 insertions, 17 deletions
diff --git a/modules/bar/components/workspaces/Workspace.qml b/modules/bar/components/workspaces/Workspace.qml
index bd28f7a..a29e61b 100644
--- a/modules/bar/components/workspaces/Workspace.qml
+++ b/modules/bar/components/workspaces/Workspace.qml
@@ -16,14 +16,14 @@ Item {
readonly property bool isWorkspace: true // Flag for finding workspace children
// Unanimated prop for others to use as reference
- readonly property real size: childrenRect[vertical ? "height" : "width"] + (shouldPad ? Appearance.padding.normal : 0)
+ readonly property real size: childrenRect[vertical ? "height" : "width"] + (hasWindows ? Appearance.padding.normal : 0)
readonly property int ws: groupOffset + index + 1
readonly property bool isOccupied: occupied[ws] ?? false
- readonly property bool shouldPad: isOccupied && BarConfig.workspaces.showWindows
+ readonly property bool hasWindows: isOccupied && BarConfig.workspaces.showWindows
- Layout.preferredWidth: childrenRect.width + (shouldPad && !vertical ? Appearance.padding.normal : 0)
- Layout.preferredHeight: childrenRect.height + (shouldPad && vertical ? Appearance.padding.normal : 0)
+ Layout.preferredWidth: childrenRect.width + (hasWindows && !vertical ? Appearance.padding.normal : 0)
+ Layout.preferredHeight: childrenRect.height + (hasWindows && vertical ? Appearance.padding.normal : 0)
StyledText {
id: indicator
@@ -42,22 +42,30 @@ Item {
height: BarConfig.sizes.innerHeight
}
- Box {
- anchors.left: vertical ? undefined : indicator.right
- anchors.top: vertical ? indicator.bottom : undefined
- anchors.verticalCenter: vertical ? undefined : indicator.verticalCenter
- anchors.horizontalCenter: vertical ? indicator.horizontalCenter : undefined
+ Loader {
+ active: BarConfig.workspaces.showWindows
+ asynchronous: true
- Repeater {
- model: ScriptModel {
- values: BarConfig.workspaces.showWindows ? Hyprland.clients.filter(c => c.workspace?.id === root.ws) : []
- }
+ anchors.left: root.vertical ? undefined : indicator.right
+ anchors.top: root.vertical ? indicator.bottom : undefined
+ anchors.verticalCenter: root.vertical ? undefined : indicator.verticalCenter
+ anchors.horizontalCenter: root.vertical ? indicator.horizontalCenter : undefined
+
+ sourceComponent: Box {
+ anchors.horizontalCenter: root.vertical ? parent.horizontalCenter : undefined
+ anchors.verticalCenter: root.vertical ? undefined : parent.verticalCenter
+
+ Repeater {
+ model: ScriptModel {
+ values: Hyprland.clients.filter(c => c.workspace?.id === root.ws)
+ }
- MaterialIcon {
- required property Hyprland.Client modelData
+ MaterialIcon {
+ required property Hyprland.Client modelData
- text: Icons.getAppCategoryIcon(modelData.wmClass, "terminal")
- color: Appearance.colours.m3onSurfaceVariant
+ text: Icons.getAppCategoryIcon(modelData.wmClass, "terminal")
+ color: Appearance.colours.m3onSurfaceVariant
+ }
}
}
}