diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/bar/components/workspaces/ActiveIndicator.qml | 6 | ||||
| -rw-r--r-- | modules/bar/components/workspaces/Workspaces.qml | 9 |
2 files changed, 8 insertions, 7 deletions
diff --git a/modules/bar/components/workspaces/ActiveIndicator.qml b/modules/bar/components/workspaces/ActiveIndicator.qml index 2d33e20..5eb446e 100644 --- a/modules/bar/components/workspaces/ActiveIndicator.qml +++ b/modules/bar/components/workspaces/ActiveIndicator.qml @@ -15,9 +15,9 @@ Rectangle { required property int groupOffset property int currentIdx: Hyprland.activeWsId - 1 - groupOffset - property real leading: workspaces[currentIdx][vertical ? "y" : "x"] - property real trailing: workspaces[currentIdx][vertical ? "y" : "x"] - property real currentSize: workspaces[currentIdx].size + property real leading: (vertical ? workspaces[currentIdx]?.y : workspaces[currentIdx]?.x) ?? 0 + property real trailing: (vertical ? workspaces[currentIdx]?.y : workspaces[currentIdx]?.x) ?? 0 + property real currentSize: (workspaces[currentIdx]?.size) ?? 0 property real size: Math.abs(leading - trailing) + currentSize property real offset: Math.min(leading, trailing) diff --git a/modules/bar/components/workspaces/Workspaces.qml b/modules/bar/components/workspaces/Workspaces.qml index a94928b..35cc2b0 100644 --- a/modules/bar/components/workspaces/Workspaces.qml +++ b/modules/bar/components/workspaces/Workspaces.qml @@ -57,10 +57,11 @@ Item { onPressed: event => Hyprland.dispatch(`workspace ${layout.childAt(event.x, event.y).index + root.groupOffset + 1}`) onWheel: event => { - if (event.angleDelta.y < 0) - Hyprland.dispatch(`workspace r+1`); - else if (event.angleDelta.y > 0 && Hyprland.activeWorkspace.id > 1) - Hyprland.dispatch(`workspace r-1`); + const activeWs = Hyprland.activeClient?.workspace?.name; + if (activeWs?.startsWith("special:")) + Hyprland.dispatch(`togglespecialworkspace ${activeWs.slice(8)}`); + else if (event.angleDelta.y < 0 || Hyprland.activeWsId > 1) + Hyprland.dispatch(`workspace r${event.angleDelta.y > 0 ? "-" : "+"}1`); } } } |