diff options
Diffstat (limited to 'modules/bar/components/workspaces/Workspaces.qml')
| -rw-r--r-- | modules/bar/components/workspaces/Workspaces.qml | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/modules/bar/components/workspaces/Workspaces.qml b/modules/bar/components/workspaces/Workspaces.qml index fb6201d..68e9ac1 100644 --- a/modules/bar/components/workspaces/Workspaces.qml +++ b/modules/bar/components/workspaces/Workspaces.qml @@ -3,18 +3,22 @@ pragma ComponentBehavior: Bound import qs.services import qs.config import qs.components +import Quickshell import QtQuick import QtQuick.Layouts StyledRect { id: root + required property ShellScreen screen + + readonly property int activeWsId: Config.bar.workspaces.perMonitorWorkspaces ? (Hyprland.monitorFor(screen).activeWorkspace?.id ?? 1) : Hyprland.activeWsId readonly property list<Workspace> workspaces: layout.children.filter(c => c.isWorkspace).sort((w1, w2) => w1.ws - w2.ws) readonly property var occupied: Hyprland.workspaces.values.reduce((acc, curr) => { acc[curr.id] = curr.lastIpcObject.windows > 0; return acc; }, {}) - readonly property int groupOffset: Math.floor((Hyprland.activeWsId - 1) / Config.bar.workspaces.shown) * Config.bar.workspaces.shown + readonly property int groupOffset: Math.floor((activeWsId - 1) / Config.bar.workspaces.shown) * Config.bar.workspaces.shown implicitWidth: layout.implicitWidth + Appearance.padding.small * 2 implicitHeight: layout.implicitHeight + Appearance.padding.small * 2 @@ -31,13 +35,12 @@ StyledRect { id: layout spacing: 0 - layer.enabled: true - layer.smooth: true Repeater { model: Config.bar.workspaces.shown Workspace { + activeWsId: root.activeWsId occupied: root.occupied groupOffset: root.groupOffset } @@ -63,6 +66,7 @@ StyledRect { asynchronous: true sourceComponent: ActiveIndicator { + activeWsId: root.activeWsId workspaces: root.workspaces mask: layout maskWidth: inner.width |