refactor(quickshell): centralize hardware status polling

This commit is contained in:
2026-09-25 14:04:14 -04:00
parent 67764b4618
commit 56581c54a7
5 changed files with 94 additions and 72 deletions
+4 -30
View File
@@ -1,42 +1,16 @@
import QtQuick
import Quickshell
import Quickshell.Io
Block {
id: root
property int percentage: -1
required property var service
visible: percentage >= 0
visible: service.brightness >= 0
blockColor: "#2980b9"
interactive: true
text: "\uf185 " + percentage + "%"
text: "\uf185 " + service.brightness + "%"
onWheel: wheel => {
const change = wheel.angleDelta.y > 0 ? "+5%" : "5%-";
Quickshell.execDetached(["brightnessctl", "set", change]);
refreshTimer.restart();
}
Process {
id: brightnessQuery
command: ["brightnessctl", "-m"]
running: true
stdout: StdioCollector {
onStreamFinished: {
const fields = text.trim().split(",");
root.percentage = fields.length >= 4
? parseInt(fields[3].replace("%", ""))
: -1;
}
}
}
Timer {
id: refreshTimer
interval: 500
repeat: true
running: true
onTriggered: brightnessQuery.running = true
service.setBrightness(change);
}
}