aboutsummaryrefslogtreecommitdiff
path: root/modules/system/quickshell/Bar.qml
diff options
context:
space:
mode:
Diffstat (limited to 'modules/system/quickshell/Bar.qml')
-rw-r--r--modules/system/quickshell/Bar.qml108
1 files changed, 108 insertions, 0 deletions
diff --git a/modules/system/quickshell/Bar.qml b/modules/system/quickshell/Bar.qml
new file mode 100644
index 0000000..77cfd1e
--- /dev/null
+++ b/modules/system/quickshell/Bar.qml
@@ -0,0 +1,108 @@
+import Quickshell
+import Quickshell.Wayland
+import Quickshell.Services.SystemTray
+import QtQuick
+
+PanelWindow {
+ id: barWindow
+
+ WlrLayershell.layer: WlrLayer.Top
+
+ anchors {
+ top: true
+ left: true
+ right: true
+ }
+
+ implicitHeight: Theme.barHeight
+ color: Theme.barBg
+
+ Item {
+ anchors.fill: parent
+ anchors.leftMargin: 12
+ anchors.rightMargin: 12
+
+ Workspaces {
+ anchors {
+ left: parent.left
+ verticalCenter: parent.verticalCenter
+ }
+ }
+
+ Row {
+ anchors {
+ right: parent.right
+ verticalCenter: parent.verticalCenter
+ }
+ spacing: 14
+
+ Repeater {
+ model: SystemTray.items
+
+ delegate: Image {
+ id: trayIcon
+ required property SystemTrayItem modelData
+
+ width: 16
+ height: 16
+ anchors.verticalCenter: parent.verticalCenter
+ source: modelData.icon
+ sourceSize: Qt.size(width, height)
+ smooth: true
+ mipmap: true
+
+ MouseArea {
+ anchors.fill: parent
+ acceptedButtons: Qt.LeftButton | Qt.RightButton
+ onClicked: mouse => {
+ if (mouse.button === Qt.RightButton) {
+ if (modelData.hasMenu && modelData.menu) {
+ trayMenu.menuItem = modelData.menu;
+ trayMenu.open(trayIcon);
+ }
+ } else {
+ modelData.activate()
+ }
+ }
+ }
+ }
+ }
+
+ TrayMenu {
+ id: trayMenu
+ parentWindow: barWindow
+ }
+
+ Bluetooth { anchors.verticalCenter: parent.verticalCenter }
+
+ Wifi { anchors.verticalCenter: parent.verticalCenter }
+
+ Volume { anchors.verticalCenter: parent.verticalCenter }
+
+ Media { anchors.verticalCenter: parent.verticalCenter }
+
+ ControlCenter { anchors.verticalCenter: parent.verticalCenter }
+
+ Text {
+ id: clock
+ anchors.verticalCenter: parent.verticalCenter
+ color: Theme.text
+ font {
+ family: Theme.mainFont
+ pixelSize: 13
+ weight: Font.Medium
+ }
+
+ Timer {
+ interval: 1000
+ running: true
+ repeat: true
+ onTriggered: parent.text = Qt.formatDateTime(new Date(), "ddd d MMM HH:mm:ss")
+ }
+
+ Component.onCompleted: text = Qt.formatDateTime(new Date(), "ddd d MMM HH:mm:ss")
+ }
+ }
+ }
+}
+