109 lines
2.6 KiB
QML
109 lines
2.6 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
|
|
|
|
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
|
|
|
|
//TODO put this in separate component
|
|
Text {
|
|
id: cpuText
|
|
text: "CPU: " + cpuUsage + "%"
|
|
color: Constants.colYellow
|
|
font.pixelSize: Constants.fontSize
|
|
font.family: Constants.fontFamily
|
|
font.bold: true
|
|
}
|
|
|
|
Rectangle {
|
|
width: 1
|
|
height: 16
|
|
color: Constants.colMuted
|
|
}
|
|
|
|
Text {
|
|
id: memText
|
|
text: "Mem: " + memUsage + "%"
|
|
color: Constants.colCyan
|
|
font.pixelSize: Constants.fontSize
|
|
font.family: Constants.fontFamily
|
|
font.bold: true
|
|
}
|
|
|
|
Rectangle {
|
|
width: 1
|
|
height: 16
|
|
color: Constants.colMuted
|
|
}
|
|
|
|
Clock {}
|
|
}
|
|
}
|
|
}
|