noctalia-shell/Modules/Bar/SystemMonitor.qml
2025-08-17 21:16:10 -04:00

166 lines
4.4 KiB
QML

import QtQuick
import Quickshell
import qs.Commons
import qs.Services
import qs.Widgets
Row {
id: root
anchors.verticalCenter: parent.verticalCenter
spacing: Style.marginSmall * scaling
visible: (Settings.data.bar.showSystemInfo)
Rectangle {
// Let the Rectangle size itself based on its content (the Row)
width: row.width + Style.marginMedium * scaling * 2
height: row.height
color: Color.mSurfaceVariant
radius: Style.radiusSmall * scaling
anchors.verticalCenter: parent.verticalCenter
Item {
id: mainContainer
anchors.fill: parent
anchors.leftMargin: Style.marginSmall * scaling
anchors.rightMargin: Style.marginSmall * scaling
Row {
id: row
anchors.verticalCenter: parent.verticalCenter
spacing: Style.marginTiny * scaling
Row {
id: cpuUsageLayout
spacing: Style.marginTiny * scaling
NIcon {
id: cpuUsageIcon
text: "speed"
anchors.verticalCenter: parent.verticalCenter
}
NText {
id: cpuUsageText
text: `${SystemStatService.cpuUsage}%`
font.pointSize: Style.fontSizeReduced * scaling
font.weight: Style.fontWeightBold
anchors.verticalCenter: parent.verticalCenter
verticalAlignment: Text.AlignVCenter
color: Color.mPrimary
}
}
// CPU Temperature Component
Row {
id: cpuTempLayout
spacing: Style.marginTiny * scaling
NIcon {
text: "thermometer"
anchors.verticalCenter: parent.verticalCenter
}
NText {
text: `${SystemStatService.cpuTemp}°C`
font.pointSize: Style.fontSizeReduced * scaling
font.weight: Style.fontWeightBold
anchors.verticalCenter: parent.verticalCenter
verticalAlignment: Text.AlignVCenter
color: Color.mPrimary
}
}
// Memory Usage Component
Row {
id: memoryUsageLayout
spacing: Style.marginTiny * scaling
NIcon {
text: "memory"
anchors.verticalCenter: parent.verticalCenter
}
NText {
text: `${SystemStatService.memoryUsageGb}G`
font.pointSize: Style.fontSizeReduced * scaling
font.weight: Style.fontWeightBold
anchors.verticalCenter: parent.verticalCenter
verticalAlignment: Text.AlignVCenter
color: Color.mPrimary
}
}
}
}
}
}
// Row {
// id: layout
// anchors.verticalCenter: parent.verticalCenter
// spacing: Style.marginSmall * scaling
// visible: Settings.data.bar.showSystemInfo
// // Ensure our width is an integer
// width: Math.floor(cpuUsageLayout.width + cpuTempLayout.width + memoryUsageLayout.width + (2 * 10))
// Row {
// id: cpuUsageLayout
// spacing: Style.marginTiny * scaling
// NIcon {
// id: cpuUsageIcon
// text: "speed"
// anchors.verticalCenter: parent.verticalCenter
// }
// NText {
// id: cpuUsageText
// text: `${SystemStatService.cpuUsage}%`
// font.pointSize: Style.fontSizeReduced * scaling
// font.weight: Style.fontWeightBold
// anchors.verticalCenter: parent.verticalCenter
// verticalAlignment: Text.AlignVCenter
// color: Color.mPrimary
// }
// }
// // CPU Temperature Component
// Row {
// id: cpuTempLayout
// spacing: Style.marginTiny * scaling
// NIcon {
// text: "thermometer"
// anchors.verticalCenter: parent.verticalCenter
// }
// NText {
// text: `${SystemStatService.cpuTemp}°C`
// font.pointSize: Style.fontSizeReduced * scaling
// font.weight: Style.fontWeightBold
// anchors.verticalCenter: parent.verticalCenter
// verticalAlignment: Text.AlignVCenter
// color: Color.mPrimary
// }
// }
// // Memory Usage Component
// Row {
// id: memoryUsageLayout
// spacing: Style.marginTiny * scaling
// NIcon {
// text: "memory"
// anchors.verticalCenter: parent.verticalCenter
// }
// NText {
// text: `${SystemStatService.memoryUsageGb}G`
// font.pointSize: Style.fontSizeReduced * scaling
// font.weight: Style.fontWeightBold
// anchors.verticalCenter: parent.verticalCenter
// verticalAlignment: Text.AlignVCenter
// color: Color.mPrimary
// }
// }
// }