diff options
Diffstat (limited to 'modules/system/quickshell/Bar.qml')
| -rw-r--r-- | modules/system/quickshell/Bar.qml | 108 |
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") + } + } + } +} + |
