Files
linux-dotfiles/quickshell/ui/TopBar.qml
2026-04-03 19:52:27 +02:00

106 lines
2.3 KiB
QML

pragma ComponentBehavior: Bound
import Quickshell
import Quickshell.Wayland
import Quickshell.Hyprland
import Quickshell.Io
import QtQuick
import QtQuick.Layouts
import "../constants"
import "../helpers"
import "."
Item {
id: root
property int cpuUsage: 0
property int memUsage: 0
property int gpuUsage: 0
RowLayout {
anchors.fill: parent
// anchors.centerIn: verticalCenter
anchors.leftMargin: 8
anchors.rightMargin: 8
WorkspaceHelpers {
id: workspaceHelpers
}
// =====================
// LEFT: Workspaces
// =====================
RowLayout {
spacing: 10
Repeater {
model: 10
Text {
required property int index
property int wsId: index + 1
property var ws: workspaceHelpers.getWorkspace(wsId)
text: wsId
color: workspaceHelpers.isWorkspaceActive(wsId) ? Colors.md3.primary : (ws ? Colors.md3.on_background : Colors.md3.on_secondary)
font {
family: Constants.fontFamily
pixelSize: Constants.fontSize
bold: true
}
MouseArea {
anchors.fill: parent
onClicked: Hyprland.dispatch("workspace " + wsId)
}
}
}
}
// Spacer
Item {
Layout.fillWidth: true
}
// =====================
// RIGHT: System info
// =====================
RowLayout {
spacing: 10
BarText {
prefix: "C"
value: cpuUsage
}
Rectangle {
width: 1
height: 16
color: Colors.md3.on_background
}
BarText {
prefix: "M"
value: memUsage
}
Rectangle {
width: 1
height: 16
color: Colors.md3.on_background
}
BarText {
prefix: "G"
value: gpuUsage
}
Clock {}
}
}
}