From b9fa9dae227e540c2d30a8c191d093d739837edc Mon Sep 17 00:00:00 2001 From: ferreo Date: Tue, 22 Jul 2025 17:33:27 +0100 Subject: [PATCH] Enhance brightness control functionality and update README for zigbrightness integration --- Bar/Modules/Brightness.qml | 110 +++++++++++++++++++++++++++++-------- Programs/zigbrightness | Bin 0 -> 47216 bytes README.md | 4 +- 3 files changed, 89 insertions(+), 25 deletions(-) create mode 100755 Programs/zigbrightness diff --git a/Bar/Modules/Brightness.qml b/Bar/Modules/Brightness.qml index 2616646..5aa5fd7 100644 --- a/Bar/Modules/Brightness.qml +++ b/Bar/Modules/Brightness.qml @@ -1,41 +1,95 @@ import QtQuick +import Quickshell import Quickshell.Io -import qs.Settings import qs.Components +import qs.Settings Item { id: brightnessDisplay property int brightness: -1 + property int previousBrightness: -1 + property var screen: (typeof modelData !== 'undefined' ? modelData : null) + property string monitorName: screen ? screen.name : "DP-1" + property bool isSettingBrightness: false + property bool hasPendingSet: false + property int pendingSetValue: -1 width: pill.width height: pill.height - - FileView { - id: brightnessFile - path: "/tmp/brightness_osd_level" - watchChanges: true - blockLoading: true - - onLoaded: updateBrightness() - onFileChanged: { - brightnessFile.reload() - updateBrightness() - } - - function updateBrightness() { - const val = parseInt(brightnessFile.text()) - if (!isNaN(val) && val !== brightnessDisplay.brightness) { - brightnessDisplay.brightness = val - pill.text = brightness + "%" - pill.show() + + Process { + id: getBrightnessProcess + command: [Quickshell.shellDir + "/Programs/zigbrightness", "get", monitorName] + + stdout: StdioCollector { + onStreamFinished: { + const output = this.text.trim() + const val = parseInt(output) + + if (!isNaN(val) && val >= 0 && val !== previousBrightness) { + previousBrightness = brightness + brightness = val + pill.text = brightness + "%" + pill.show() + } } } } + + function getBrightness() { + if (isSettingBrightness) { + return + } + + getBrightnessProcess.running = true + } + + Process { + id: setBrightnessProcess + property int targetValue: -1 + command: [Quickshell.shellDir + "/Programs/zigbrightness", "set", monitorName, targetValue.toString()] + + stdout: StdioCollector { + onStreamFinished: { + const output = this.text.trim() + const val = parseInt(output) + + if (!isNaN(val) && val >= 0) { + brightness = val + pill.text = brightness + "%" + pill.show() + } + + isSettingBrightness = false + + if (hasPendingSet) { + hasPendingSet = false + const pendingValue = pendingSetValue + pendingSetValue = -1 + setBrightness(pendingValue) + } + } + } + } + + function setBrightness(newValue) { + newValue = Math.max(0, Math.min(100, newValue)) + + if (isSettingBrightness) { + hasPendingSet = true + pendingSetValue = newValue + return + } + + isSettingBrightness = true + setBrightnessProcess.targetValue = newValue + setBrightnessProcess.running = true + } PillIndicator { id: pill icon: "brightness_high" - text: brightness >= 0 ? brightness + "%" : "" + text: brightness >= 0 ? brightness + "%" : "--" pillColor: Theme.surfaceVariant iconCircleColor: Theme.accentPrimary iconTextColor: Theme.backgroundPrimary @@ -43,8 +97,17 @@ Item { MouseArea { anchors.fill: parent hoverEnabled: true - onEntered: brightnessTooltip.tooltipVisible = true + onEntered: { + getBrightness() + brightnessTooltip.tooltipVisible = true + } onExited: brightnessTooltip.tooltipVisible = false + + onWheel: function(wheel) { + const delta = wheel.angleDelta.y > 0 ? 5 : -5 + const newBrightness = brightness + delta + setBrightness(newBrightness) + } } StyledTooltip { id: brightnessTooltip @@ -56,8 +119,9 @@ Item { } Component.onCompleted: { + getBrightness() if (brightness >= 0) { pill.show() } } -} +} \ No newline at end of file diff --git a/Programs/zigbrightness b/Programs/zigbrightness new file mode 100755 index 0000000000000000000000000000000000000000..30a8f4354f22dca1cc29ea34ad8a0775573d409e GIT binary patch literal 47216 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 07d42bb..d9adbf3 100644 --- a/README.md +++ b/README.md @@ -177,11 +177,11 @@ You will need to install a few things to get everything working: - `swww` to add fancy wallpaper animations (optional) - `wallust` to theme the setup based on wallpaper (optional) -## zigstat is bundled - source can be found [here](https://git.pika-os.com/wm-packages/pikabar/src/branch/main/src/zigstat). +## zigstat and zigbrightnesss is bundled - source can be found [here](https://git.pika-os.com/wm-packages/pikabar/src/t). ## Known issues -Currently the brightness indicator is very opiniated (using ddcutil with a script to log current brightness). This will be fixed **asap**! +It is perfect now ---