aboutsummaryrefslogtreecommitdiff
path: root/quickshell/Procs.qml
diff options
context:
space:
mode:
Diffstat (limited to 'quickshell/Procs.qml')
-rw-r--r--quickshell/Procs.qml111
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
+ }
+}