summaryrefslogtreecommitdiff
path: root/modules/bar
diff options
context:
space:
mode:
Diffstat (limited to 'modules/bar')
-rw-r--r--modules/bar/ActiveWindow.qml29
-rw-r--r--modules/bar/Bar.qml48
-rw-r--r--modules/bar/Clock.qml26
-rw-r--r--modules/bar/OsIcon.qml15
4 files changed, 118 insertions, 0 deletions
diff --git a/modules/bar/ActiveWindow.qml b/modules/bar/ActiveWindow.qml
new file mode 100644
index 0000000..f65a83f
--- /dev/null
+++ b/modules/bar/ActiveWindow.qml
@@ -0,0 +1,29 @@
+import "root:/widgets"
+import "root:/services"
+import "root:/utils"
+import "root:/config"
+import QtQuick
+import QtQuick.Layouts
+
+Box {
+ id: root
+ property color colour: Appearance.colours.pink
+
+ MaterialIcon {
+ Layout.alignment: Qt.AlignCenter
+ text: Icons.getAppCategoryIcon(Hyprland.activeClient?.wmClass) ?? "desktop_windows"
+ color: root.colour
+ }
+
+ Text {
+ Layout.alignment: Qt.AlignCenter
+
+ text: Hyprland.activeClient?.title ?? "Desktop"
+ font.pointSize: Appearance.font.size.smaller
+ font.family: Appearance.font.family.mono
+ color: root.colour
+
+ rotation: root.vertical ? 90 : 0
+ Layout.maximumWidth: root.vertical ? this.implicitHeight : this.implicitWidth
+ }
+}
diff --git a/modules/bar/Bar.qml b/modules/bar/Bar.qml
new file mode 100644
index 0000000..5aa18f7
--- /dev/null
+++ b/modules/bar/Bar.qml
@@ -0,0 +1,48 @@
+import "root:/widgets"
+import "root:/config"
+import Quickshell
+import Quickshell.Wayland
+
+Variants {
+ model: Quickshell.screens
+
+ WlrLayershell {
+ id: win
+
+ property var modelData
+ property bool vertical: false
+
+ screen: modelData
+ namespace: "caelestia-bar"
+ color: Appearance.alpha(Appearance.colours.base, false)
+
+ anchors {
+ top: true
+ left: true
+ right: !vertical
+ bottom: vertical
+ }
+
+ width: contents.implicitWidth + (vertical ? Appearance.padding.normal * 2 : 0)
+ height: contents.implicitHeight + (vertical ? 0 : Appearance.padding.smaller * 2)
+
+ Box {
+ id: contents
+
+ vertical: win.vertical
+ spacing: Appearance.spacing.larger
+ x: Appearance.padding.normal
+ y: vertical ? Appearance.padding.normal : Appearance.padding.smaller
+
+ OsIcon {}
+
+ Clock {
+ vertical: win.vertical
+ }
+
+ ActiveWindow {
+ vertical: win.vertical
+ }
+ }
+ }
+}
diff --git a/modules/bar/Clock.qml b/modules/bar/Clock.qml
new file mode 100644
index 0000000..4c743a6
--- /dev/null
+++ b/modules/bar/Clock.qml
@@ -0,0 +1,26 @@
+import "root:/widgets"
+import "root:/services"
+import "root:/config"
+import QtQuick
+import QtQuick.Layouts
+
+Box {
+ id: root
+ property color colour: Appearance.colours.peach
+
+ MaterialIcon {
+ Layout.alignment: Qt.AlignCenter
+ text: "calendar_month"
+ color: root.colour
+ }
+
+ Text {
+ Layout.alignment: Qt.AlignCenter
+ horizontalAlignment: Text.AlignJustify
+
+ text: root.vertical ? Time.format("hh\nmm") : Time.format("dd/MM/yy hh:mm")
+ font.pointSize: Appearance.font.size.smaller
+ font.family: Appearance.font.family.mono
+ color: root.colour
+ }
+}
diff --git a/modules/bar/OsIcon.qml b/modules/bar/OsIcon.qml
new file mode 100644
index 0000000..1737814
--- /dev/null
+++ b/modules/bar/OsIcon.qml
@@ -0,0 +1,15 @@
+import "root:/widgets"
+import "root:/services"
+import "root:/utils"
+import "root:/config"
+import QtQuick
+import QtQuick.Layouts
+
+Text {
+ Layout.alignment: Qt.AlignCenter
+
+ text: Icons.osIcon
+ font.pointSize: Appearance.font.size.smaller
+ font.family: Appearance.font.family.mono
+ color: Appearance.colours.yellow
+}