From 9a7f5c2def65f630aa1780b2e8c7d189b4487630 Mon Sep 17 00:00:00 2001 From: Emmmmllll Date: Thu, 11 Sep 2025 14:26:38 +0200 Subject: [PATCH 1/3] fix(brightness): use the monitor's max brightness instead of '100' --- .config/quickshell/ii/services/Brightness.qml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.config/quickshell/ii/services/Brightness.qml b/.config/quickshell/ii/services/Brightness.qml index 74ef562b2..d9db341dd 100644 --- a/.config/quickshell/ii/services/Brightness.qml +++ b/.config/quickshell/ii/services/Brightness.qml @@ -76,6 +76,7 @@ Singleton { required property ShellScreen screen readonly property bool isDdc: root.ddcMonitors.some(m => m.model === screen.model) readonly property string busNum: root.ddcMonitors.find(m => m.model === screen.model)?.busNum ?? "" + property int maxBrightness: 100 property real brightness property bool ready: false @@ -95,7 +96,8 @@ Singleton { stdout: SplitParser { onRead: data => { const [, , , current, max] = data.split(" "); - monitor.brightness = parseInt(current) / parseInt(max); + monitor.maxBrightness = parseInt(max); + monitor.brightness = parseInt(current) / monitor.maxBrightness; monitor.ready = true; } } @@ -103,8 +105,8 @@ Singleton { function setBrightness(value: real): void { value = Math.max(0.01, Math.min(1, value)); - const rounded = Math.round(value * 100); - if (Math.round(brightness * 100) === rounded) + const rounded = Math.round(value * monitor.maxBrightness); + if (Math.round(brightness * monitor.maxBrightness) === rounded) return; brightness = value; setProc.command = isDdc ? ["ddcutil", "-b", busNum, "setvcp", "10", rounded] : ["brightnessctl", "s", `${rounded}%`, "--quiet"]; From 2f369bbf3d45319f848556f3e51595c81b5478fa Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Thu, 11 Sep 2025 23:25:06 +0200 Subject: [PATCH 2/3] fix setting brightness with brightnessctl --- .config/quickshell/ii/services/Brightness.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/quickshell/ii/services/Brightness.qml b/.config/quickshell/ii/services/Brightness.qml index d9db341dd..71fc4e6e0 100644 --- a/.config/quickshell/ii/services/Brightness.qml +++ b/.config/quickshell/ii/services/Brightness.qml @@ -109,7 +109,7 @@ Singleton { if (Math.round(brightness * monitor.maxBrightness) === rounded) return; brightness = value; - setProc.command = isDdc ? ["ddcutil", "-b", busNum, "setvcp", "10", rounded] : ["brightnessctl", "s", `${rounded}%`, "--quiet"]; + setProc.command = isDdc ? ["ddcutil", "-b", busNum, "setvcp", "10", rounded] : ["brightnessctl", "s", rounded, "--quiet"]; setProc.startDetached(); } From d9688884e43929c6f499cee46442c2fb5472406e Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Thu, 11 Sep 2025 23:27:14 +0200 Subject: [PATCH 3/3] Rename maxBrightness to rawMaxBrightness less confusing because `brightness` is percentage --- .config/quickshell/ii/services/Brightness.qml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.config/quickshell/ii/services/Brightness.qml b/.config/quickshell/ii/services/Brightness.qml index 71fc4e6e0..154bdffd4 100644 --- a/.config/quickshell/ii/services/Brightness.qml +++ b/.config/quickshell/ii/services/Brightness.qml @@ -76,7 +76,7 @@ Singleton { required property ShellScreen screen readonly property bool isDdc: root.ddcMonitors.some(m => m.model === screen.model) readonly property string busNum: root.ddcMonitors.find(m => m.model === screen.model)?.busNum ?? "" - property int maxBrightness: 100 + property int rawMaxBrightness: 100 property real brightness property bool ready: false @@ -96,8 +96,8 @@ Singleton { stdout: SplitParser { onRead: data => { const [, , , current, max] = data.split(" "); - monitor.maxBrightness = parseInt(max); - monitor.brightness = parseInt(current) / monitor.maxBrightness; + monitor.rawMaxBrightness = parseInt(max); + monitor.brightness = parseInt(current) / monitor.rawMaxBrightness; monitor.ready = true; } } @@ -105,8 +105,8 @@ Singleton { function setBrightness(value: real): void { value = Math.max(0.01, Math.min(1, value)); - const rounded = Math.round(value * monitor.maxBrightness); - if (Math.round(brightness * monitor.maxBrightness) === rounded) + const rounded = Math.round(value * monitor.rawMaxBrightness); + if (Math.round(brightness * monitor.rawMaxBrightness) === rounded) return; brightness = value; setProc.command = isDdc ? ["ddcutil", "-b", busNum, "setvcp", "10", rounded] : ["brightnessctl", "s", rounded, "--quiet"];