diff options
Diffstat (limited to 'quickshell/Procs.qml')
| -rw-r--r-- | quickshell/Procs.qml | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/quickshell/Procs.qml b/quickshell/Procs.qml new file mode 100644 index 0000000..5819a34 --- /dev/null +++ b/quickshell/Procs.qml @@ -0,0 +1,111 @@ +import Quickshell +import Quickshell.Io +import QtQuick + +Scope { + Timer { + interval: 2000 + running: true + repeat: true + onTriggered: { + cpuProc.running = true + memProc.running = true + brightnessProc.running = true + volumeProc.running = true + batteryProc.running = true + networkProc.running = true + temperatureProc.running = true + } + } + + Process { + id: cpuProc + command: ["sh", "-c", "head -1 /proc/stat"] + + stdout: SplitParser { + onRead: data => { + var p = data.trim().split(/\s+/) + var idle = parseInt(p[4]) + parseInt(p[5]) + var total = p.slice(1, 8).reduce((a, b) => a + parseInt(b), 0) + if (lastCpuTotal > 0) { + cpuUsage = Math.round(100 * (1 - (idle - lastCpuIdle) / (total - lastCpuTotal))) + } + lastCpuTotal = total + lastCpuIdle = idle + } + } + Component.onCompleted: running = true + } + + Process { + id: memProc + command: ["sh", "-c", "free | grep Mem"] + stdout: SplitParser { + onRead: data => { + var parts = data.trim().split(/\s+/) + var total = parseInt(parts[1]) || 1 + var used = parseInt(parts[2]) || 0 + memUsage = Math.round(100 * used / total) + } + } + Component.onCompleted: running = true + } + + Process { + id: temperatureProc + command: ["sh", "-c", "~/.config/quickshell/scripts/cpu_temp.sh"] + stdout: SplitParser { + onRead: data => { + cpu_temperature = parseInt(data.trim()) || 13; + } + } + Component.onCompleted: running = true + } + + Process { + id: brightnessProc + command: ["sh", "-c", "~/.config/quickshell/scripts/brightness.sh"] + stdout: SplitParser { + onRead: data => { + var parts = data.trim().split(/\s+/) + brightness = parseInt(parts[0]) || 100 + temperature = parseInt(parts[1]) || 6000 + } + } + Component.onCompleted: running = true + } + + Process { + id: volumeProc + command: ["sh", "-c", "~/.config/quickshell/scripts/volume.sh"] + stdout: SplitParser { + onRead: data => { + volume = parseInt(data.trim()) || 13; + } + } + Component.onCompleted: running = true + } + + Process { + id: batteryProc + command: ["sh", "-c", "~/.config/quickshell/scripts/battery.sh"] + stdout: SplitParser { + onRead: data => { + battery = parseInt(data.trim()) || 13; + } + } + Component.onCompleted: running = true + } + + Process { + id: networkProc + command: ["sh", "-c", "~/.config/quickshell/scripts/network.sh"] + stdout: SplitParser { + onRead: data => { + var parts = data.trim().split(/\s+/) + wifiName = parts[0]; + } + } + Component.onCompleted: running = true + } +} |
