diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-04-28 20:07:38 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-04-28 20:07:38 +1000 |
| commit | 0b48cc5ff6e5d045177d82ff9505c1ccc31d5487 (patch) | |
| tree | 5488904e6b2524d5b33d34162a5395f9619fec28 /modules/bar | |
| parent | bar: workspaces different styles for occupied (diff) | |
| download | caelestia-shell-0b48cc5ff6e5d045177d82ff9505c1ccc31d5487.tar.gz caelestia-shell-0b48cc5ff6e5d045177d82ff9505c1ccc31d5487.tar.bz2 caelestia-shell-0b48cc5ff6e5d045177d82ff9505c1ccc31d5487.zip | |
refactor: bar workspaces move workspace into file
Diffstat (limited to 'modules/bar')
| -rw-r--r-- | modules/bar/Bar.qml | 6 | ||||
| -rw-r--r-- | modules/bar/workspaces/OccupiedBg.qml | 6 | ||||
| -rw-r--r-- | modules/bar/workspaces/Workspace.qml | 18 | ||||
| -rw-r--r-- | modules/bar/workspaces/Workspaces.qml | 24 |
4 files changed, 34 insertions, 20 deletions
diff --git a/modules/bar/Bar.qml b/modules/bar/Bar.qml index aa9766d..160b8b6 100644 --- a/modules/bar/Bar.qml +++ b/modules/bar/Bar.qml @@ -40,15 +40,15 @@ Variants { OsIcon {} - Clock { + Workspaces { vertical: win.vertical } - ActiveWindow { + Clock { vertical: win.vertical } - Workspaces { + ActiveWindow { vertical: win.vertical } } diff --git a/modules/bar/workspaces/OccupiedBg.qml b/modules/bar/workspaces/OccupiedBg.qml index b9846b6..97a27a0 100644 --- a/modules/bar/workspaces/OccupiedBg.qml +++ b/modules/bar/workspaces/OccupiedBg.qml @@ -10,13 +10,9 @@ BoxLayout { required property bool vertical required property list<Label> workspaces + required property var occupied required property BoxLayout layout - readonly property var occupied: Hyprland.workspaces.values.reduce((acc, curr) => { - acc[curr.id] = curr.lastIpcObject.windows > 0; - return acc; - }, {}) - anchors.centerIn: parent spacing: 0 z: -1 diff --git a/modules/bar/workspaces/Workspace.qml b/modules/bar/workspaces/Workspace.qml new file mode 100644 index 0000000..4f53e73 --- /dev/null +++ b/modules/bar/workspaces/Workspace.qml @@ -0,0 +1,18 @@ +import "root:/widgets" +import "root:/services" +import "root:/config" +import QtQuick.Layouts + +Label { + required property int index + required property BoxLayout layout + required property var occupied + readonly property bool isWorkspace: true + + text: index + 1 + color: BarConfig.workspaces.occupiedBg || occupied[index + 1] ? Appearance.colours.text : Appearance.colours.subtext0 + horizontalAlignment: Label.AlignHCenter + + Layout.preferredWidth: layout.homogenous && !layout.vertical ? layout.height : -1 + Layout.preferredHeight: layout.homogenous && layout.vertical ? layout.width : -1 +} diff --git a/modules/bar/workspaces/Workspaces.qml b/modules/bar/workspaces/Workspaces.qml index 203ef91..62f22d7 100644 --- a/modules/bar/workspaces/Workspaces.qml +++ b/modules/bar/workspaces/Workspaces.qml @@ -12,7 +12,15 @@ Item { property alias vertical: layout.vertical readonly property color colour: Appearance.colours.mauve + property int shown: 10 + property bool occupiedBg: false + property bool showWindows: false + readonly property list<Label> workspaces: layout.children.filter(c => c.isWorkspace) + readonly property var occupied: Hyprland.workspaces.values.reduce((acc, curr) => { + acc[curr.id] = curr.lastIpcObject.windows > 0; + return acc; + }, {}) implicitWidth: layout.implicitWidth implicitHeight: layout.implicitHeight @@ -28,26 +36,18 @@ Item { Repeater { model: BarConfig.workspaces.shown - Label { - required property int index - readonly property bool isWorkspace: true - - text: index + 1 - color: BarConfig.workspaces.occupiedBg || occupied.occupied[index + 1] ? Appearance.colours.text : Appearance.colours.subtext0 - horizontalAlignment: Label.AlignHCenter - - Layout.preferredWidth: layout.homogenous && !layout.vertical ? layout.height : -1 - Layout.preferredHeight: layout.homogenous && layout.vertical ? layout.width : -1 + Workspace { + layout: layout + occupied: root.occupied } } } OccupiedBg { - id: occupied - opacity: BarConfig.workspaces.occupiedBg ? 1 : 0 vertical: root.vertical workspaces: root.workspaces + occupied: root.occupied layout: layout Behavior on opacity { |