summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/bar/Bar.qml6
-rw-r--r--modules/bar/workspaces/OccupiedBg.qml6
-rw-r--r--modules/bar/workspaces/Workspace.qml18
-rw-r--r--modules/bar/workspaces/Workspaces.qml24
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 {