summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/theme-data/dms/Modules/DankDash/Overview/SystemMonitorCard.qml
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-hyprland-theme/theme-data/dms/Modules/DankDash/Overview/SystemMonitorCard.qml')
-rw-r--r--raveos-hyprland-theme/theme-data/dms/Modules/DankDash/Overview/SystemMonitorCard.qml178
1 files changed, 178 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/dms/Modules/DankDash/Overview/SystemMonitorCard.qml b/raveos-hyprland-theme/theme-data/dms/Modules/DankDash/Overview/SystemMonitorCard.qml
new file mode 100644
index 0000000..cb7089b
--- /dev/null
+++ b/raveos-hyprland-theme/theme-data/dms/Modules/DankDash/Overview/SystemMonitorCard.qml
@@ -0,0 +1,178 @@
+import QtQuick
+import QtQuick.Effects
+import qs.Common
+import qs.Services
+import qs.Widgets
+
+Card {
+ id: root
+
+ Component.onCompleted: {
+ DgopService.addRef(["cpu", "memory", "system"])
+ }
+ Component.onDestruction: {
+ DgopService.removeRef(["cpu", "memory", "system"])
+ }
+
+ Row {
+ anchors.fill: parent
+ anchors.margins: Theme.spacingS
+ spacing: Theme.spacingM
+
+ // CPU Bar
+ Column {
+ width: (parent.width - 2 * Theme.spacingM) / 3
+ height: parent.height
+ spacing: Theme.spacingS
+
+ Rectangle {
+ width: 8
+ height: parent.height - Theme.iconSizeSmall - Theme.spacingS
+ radius: 4
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
+
+ Rectangle {
+ width: parent.width
+ height: parent.height * Math.min((DgopService.cpuUsage || 6) / 100, 1)
+ radius: parent.radius
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: {
+ if (DgopService.cpuUsage > 80) return Theme.error
+ if (DgopService.cpuUsage > 60) return Theme.warning
+ return Theme.primary
+ }
+
+ Behavior on height {
+ NumberAnimation {
+ duration: Theme.shortDuration
+ easing.type: Theme.standardEasing
+ }
+ }
+ }
+ }
+
+ Item {
+ width: parent.width
+ height: Theme.iconSizeSmall
+
+ DankIcon {
+ name: "memory"
+ size: Theme.iconSizeSmall
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ color: {
+ if (DgopService.cpuUsage > 80) return Theme.error
+ if (DgopService.cpuUsage > 60) return Theme.warning
+ return Theme.primary
+ }
+ }
+ }
+ }
+
+ // Temperature Bar
+ Column {
+ width: (parent.width - 2 * Theme.spacingM) / 3
+ height: parent.height
+ spacing: Theme.spacingS
+
+ Rectangle {
+ width: 8
+ height: parent.height - Theme.iconSizeSmall - Theme.spacingS
+ radius: 4
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
+
+ Rectangle {
+ width: parent.width
+ height: parent.height * Math.min(Math.max((DgopService.cpuTemperature || 40) / 100, 0), 1)
+ radius: parent.radius
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: {
+ if (DgopService.cpuTemperature > 85) return Theme.error
+ if (DgopService.cpuTemperature > 69) return Theme.warning
+ return Theme.primary
+ }
+
+ Behavior on height {
+ NumberAnimation {
+ duration: Theme.shortDuration
+ easing.type: Theme.standardEasing
+ }
+ }
+ }
+ }
+
+ Item {
+ width: parent.width
+ height: Theme.iconSizeSmall
+
+ DankIcon {
+ name: "device_thermostat"
+ size: Theme.iconSizeSmall
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ color: {
+ if (DgopService.cpuTemperature > 85) return Theme.error
+ if (DgopService.cpuTemperature > 69) return Theme.warning
+ return Theme.primary
+ }
+ }
+ }
+ }
+
+ // RAM Bar
+ Column {
+ width: (parent.width - 2 * Theme.spacingM) / 3
+ height: parent.height
+ spacing: Theme.spacingS
+
+ Rectangle {
+ width: 8
+ height: parent.height - Theme.iconSizeSmall - Theme.spacingS
+ radius: 4
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
+
+ Rectangle {
+ width: parent.width
+ height: parent.height * Math.min((DgopService.memoryUsage || 42) / 100, 1)
+ radius: parent.radius
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: {
+ if (DgopService.memoryUsage > 90) return Theme.error
+ if (DgopService.memoryUsage > 75) return Theme.warning
+ return Theme.primary
+ }
+
+ Behavior on height {
+ NumberAnimation {
+ duration: Theme.shortDuration
+ easing.type: Theme.standardEasing
+ }
+ }
+ }
+ }
+
+ Item {
+ width: parent.width
+ height: Theme.iconSizeSmall
+
+ DankIcon {
+ name: "developer_board"
+ size: Theme.iconSizeSmall
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ color: {
+ if (DgopService.memoryUsage > 90) return Theme.error
+ if (DgopService.memoryUsage > 75) return Theme.warning
+ return Theme.primary
+ }
+ }
+ }
+ }
+ }
+}