summaryrefslogtreecommitdiff
path: root/services/Brightness.qml
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-15 15:43:50 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-15 15:43:50 +1000
commit05e9561fd687c15baba56fc9eeca9a29b504abd2 (patch)
treea739b82c81d38727fe69c4c541a0509a75f15a8d /services/Brightness.qml
parentcolours: more fixes for cli rewrite (diff)
downloadcaelestia-shell-05e9561fd687c15baba56fc9eeca9a29b504abd2.tar.gz
caelestia-shell-05e9561fd687c15baba56fc9eeca9a29b504abd2.tar.bz2
caelestia-shell-05e9561fd687c15baba56fc9eeca9a29b504abd2.zip
internal: use stdiocollector
Removes dependency on jq Also fix beatdetector
Diffstat (limited to 'services/Brightness.qml')
-rw-r--r--services/Brightness.qml25
1 files changed, 9 insertions, 16 deletions
diff --git a/services/Brightness.qml b/services/Brightness.qml
index 1687878..3715853 100644
--- a/services/Brightness.qml
+++ b/services/Brightness.qml
@@ -9,7 +9,7 @@ import QtQuick
Singleton {
id: root
- property var ddcMonitors: []
+ property list<var> ddcMonitors: []
readonly property list<Monitor> monitors: variants.instances
function getMonitorForScreen(screen: ShellScreen): var {
@@ -49,19 +49,12 @@ Singleton {
id: ddcProc
command: ["ddcutil", "detect", "--brief"]
- stdout: SplitParser {
- splitMarker: "\n\n"
- onRead: data => {
- if (data.startsWith("Display ")) {
- const lines = data.split("\n").map(l => l.trim());
- root.ddcMonitors.push({
- model: lines.find(l => l.startsWith("Monitor:")).split(":")[2],
- busNum: lines.find(l => l.startsWith("I2C bus:")).split("/dev/i2c-")[1]
- });
- }
- }
+ stdout: StdioCollector {
+ onStreamFinished: root.ddcMonitors = text.trim().split("\n\n").filter(d => d.startsWith("Display ")).map(d => ({
+ model: d.match(/Monitor:.*:(.*):.*/)[1],
+ busNum: d.match(/I2C bus:[ ]*\/dev\/i2c-([0-9]+)/)[1]
+ }))
}
- onExited: root.ddcMonitorsChanged()
}
Process {
@@ -87,9 +80,9 @@ Singleton {
property real brightness
readonly property Process initProc: Process {
- stdout: SplitParser {
- onRead: data => {
- const [, , , current, max] = data.split(" ");
+ stdout: StdioCollector {
+ onStreamFinished: {
+ const [, , , current, max] = text.split(" ");
monitor.brightness = parseInt(current) / parseInt(max);
}
}