quickshell-rice/quickshell/services/SystemMonitorService.qml

96 lines
4.2 KiB
QML

pragma Singleton
import QtQuick
import Quickshell
import Quickshell.Io
Item {
id: root
property int cpuPct: 0
property real cpuTemp: 0.0
property int cpuFan: 0
property string cpuFreq: "4.0 GHz"
property int cpuCores: 8
property var cpuHistory: [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
property int gpuPct: 0
property real gpuTemp: 0.0
property int gpuVramUsed: 0
property int gpuVramTotal: 8188
property string gpuPower: "20W / 78W"
property int gpuFan: 0
property var gpuHistory: [5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
property real nvmeTemp: 0.0
property real wifiTemp: 0.0
property real ramUsed: 0.0
property real ramTotal: 30.6
property int ramPct: 0
property var ramHistory: [20, 20, 20, 20, 20, 20, 20, 20, 20, 20]
property real swapUsed: 0.0
property real swapTotal: 8.0
property real diskUsed: 0.0
property real diskTotal: 500.0
property int diskPct: 0
property string netRx: "0 B/s"
property string netTx: "0 B/s"
property string uptime: "0m"
property string topProc: "systemd (1%)"
property int procCount: 250
Process {
id: monitorProc
command: ["python3", "-u", Quickshell.env("HOME") + "/.config/quickshell/services/python/system_monitor_service.py"]
running: true
stdout: SplitParser {
onRead: data => {
try {
let parsed = JSON.parse(data.trim())
if (parsed && typeof parsed === "object") {
if (parsed.cpu !== undefined) root.cpuPct = parsed.cpu
if (parsed.cpu_temp !== undefined) root.cpuTemp = parsed.cpu_temp
if (parsed.cpu_fan !== undefined) root.cpuFan = parsed.cpu_fan
if (parsed.cpu_freq !== undefined) root.cpuFreq = parsed.cpu_freq
if (parsed.cpu_cores !== undefined) root.cpuCores = parsed.cpu_cores
if (parsed.cpu_history !== undefined) root.cpuHistory = parsed.cpu_history
if (parsed.gpu_pct !== undefined) root.gpuPct = parsed.gpu_pct
if (parsed.gpu_temp !== undefined) root.gpuTemp = parsed.gpu_temp
if (parsed.gpu_vram_used !== undefined) root.gpuVramUsed = parsed.gpu_vram_used
if (parsed.gpu_vram_total !== undefined) root.gpuVramTotal = parsed.gpu_vram_total
if (parsed.gpu_power !== undefined) root.gpuPower = parsed.gpu_power
if (parsed.gpu_fan !== undefined) root.gpuFan = parsed.gpu_fan
if (parsed.gpu_history !== undefined) root.gpuHistory = parsed.gpu_history
if (parsed.nvme_temp !== undefined) root.nvmeTemp = parsed.nvme_temp
if (parsed.wifi_temp !== undefined) root.wifiTemp = parsed.wifi_temp
if (parsed.ram_used !== undefined) root.ramUsed = parsed.ram_used
if (parsed.ram_total !== undefined) root.ramTotal = parsed.ram_total
if (parsed.ram_pct !== undefined) root.ramPct = parsed.ram_pct
if (parsed.ram_history !== undefined) root.ramHistory = parsed.ram_history
if (parsed.swap_used !== undefined) root.swapUsed = parsed.swap_used
if (parsed.swap_total !== undefined) root.swapTotal = parsed.swap_total
if (parsed.disk_used !== undefined) root.diskUsed = parsed.disk_used
if (parsed.disk_total !== undefined) root.diskTotal = parsed.disk_total
if (parsed.disk_pct !== undefined) root.diskPct = parsed.disk_pct
if (parsed.net_rx !== undefined) root.netRx = parsed.net_rx
if (parsed.net_tx !== undefined) root.netTx = parsed.net_tx
if (parsed.uptime !== undefined) root.uptime = parsed.uptime
if (parsed.top_proc !== undefined) root.topProc = parsed.top_proc
if (parsed.proc_count !== undefined) root.procCount = parsed.proc_count
}
} catch (e) {}
}
}
}
}